在Python中使用嵌套for循环连接两个列表

时间:2016-06-03 01:56:59

标签: python list for-loop nested concatenation

我想创建一个字符串元素列表,这是一副卡片。

我创建了两个字符串列表(1-Ace和套件)。我想使用嵌套for循环来执行此操作,并在两者之间包含一个单词(" of")。我在打印所有内容时快速轻松地做到了这一点,但当我去附加到另一个列表(套牌)时,我遇到了创建我想要的字符串变量的问题。

编辑:我收到以下错误:"标签和缩进的使用不一致"。
我目前正在使用notepad ++,但我在使用IDLE时遇到了同样的错误。

nums = ["1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "Jack", "Queen", "King", "Ace"]
suite = ["Diamonds", "Hearts", "Clubs", "Spades"]
deck = []

for element in nums:
    for suit in suite:
        card = "%s of %s" % (element, suit)
        deck.append(card)
        print (deck)

我的目标是拥有一个类似于此的字符串列表... ["心中的一个","黑桃王牌"] ......

谢谢!

1 个答案:

答案 0 :(得分:3)

错误指向标签和空格的混合不当。大多数文本编辑器都提供“按空格替换标签”或类似的选项。或者,如果您打算坚持使用Python,我强烈建议使用像PyCharm(我最喜欢的)或Eclipse/PyDev这样的认真IDE。

除此之外,您发布的代码没有任何问题。 itertools.product是你的朋友,如果你想要缓解任务(并完全避免缩进):

from itertools import product

deck = [' of '.join(p) for p in product(nums, suite)]

map的帮助下甚至更短:

deck = map(' of '.join, product(nums, suite))