当前位置:  开发笔记 > 编程语言 > 正文

如何获取列表列表中的每个元素?

如何解决《如何获取列表列表中的每个元素?》经验,为你挑选了2个好方法。

我正在为我的作业制作心脏游戏,但我不知道如何在列表列表中获取每个元素:

>>>Cards = [[["QS","5H","AS"],["2H","8H"],["7C"]],[["9H","5C],["JH"]],[["7D"]]]

而我想到的是:

for values in cards:
    for value in values:

但我想我的元素有2个列表.如何计算卡中有3个和1个列表的那个?



1> Hans Then..:

像这样:

>>> Cards = [[["QS","5H","AS"],["2H","8H"],["7C"]],[["9H","5C"],["JH"]],["7D"]]
>>> from compiler.ast import flatten
>>> flatten(Cards) 
['QS', '5H', 'AS', '2H', '8H', '7C', '9H', '5C', 'JH', '7D']

正如nacholibre指出的那样,该compiler软件包已被弃用.这是以下来源flatten:

def flatten(seq):
    l = []
    for elt in seq:
        t = type(elt)
        if t is tuple or t is list:
            for elt2 in flatten(elt):
                l.append(elt2)
        else:
            l.append(elt)
    return l



2> Blubber..:

略显模糊的oneliner:

>>> [a for c in Cards for b in c for a in b]
['QS', '5H', 'AS', '2H', '8H', '7C', '9H', '5C', 'JH', '7', 'D']

您可能想要给出a,b和c更具描述性的名称.


@blubber问题是它们没有单独嵌套(这是一种存储游戏数据的奇怪方式......)
@ErikaSawajiri列表中的最后一项应该是[['7D']],这不是一个错字吗?
推荐阅读
mobiledu2402852413
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有