首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Python列表和for循环

Python列表和for循环
EN

Stack Overflow用户
提问于 2015-01-26 17:37:39
回答 3查看 138关注 0票数 0

我期待着这段代码打印出铲子:一个铲子:2等等,直到心:K。

但它只做心:A到心:K。

我怎么发动汽车呢?

代码语言:javascript
运行
复制
symbols = ["spade", "clover", "diamond", "heart"]
numbers = ["A", "2", "3", "4", "5", "6", "7", "8", "9", "10", "J", "Q",       "K"]
cards = {}

for num in numbers:
    for symbol in symbols:
        cards[num] = symbol

print cards
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2015-01-27 18:58:37

使用您的itertools工具箱

代码语言:javascript
运行
复制
import itertools

symbols = ["spade", "clover", "diamond", "heart"]
numbers = ["A", "2", "3", "4", "5", "6", "7", "8", "9", "10", "J", "Q",       "K"]

combinations = itertools.product(symbols, numbers)

cards = ["{}:{}".format(suit, rank) for suit,rank in combinations]

这会给你一个清单:

代码语言:javascript
运行
复制
['spade:A',
 'spade:2',
 'spade:3',
 'spade:4',
 'spade:5',
 'spade:6',
 'spade:7',
 'spade:8',
 'spade:9',
 'spade:10',
 'spade:J',
 'spade:Q',
 'spade:K',
 'clover:A',
 'clover:2',
 'clover:3',
 'clover:4',
 'clover:5',
 'clover:6',
 'clover:7',
 'clover:8',
 'clover:9',
 'clover:10',
 'clover:J',
 'clover:Q',
 'clover:K',
 'diamond:A',
 'diamond:2',
 'diamond:3',
 'diamond:4',
 'diamond:5',
 'diamond:6',
 'diamond:7',
 'diamond:8',
 'diamond:9',
 'diamond:10',
 'diamond:J',
 'diamond:Q',
 'diamond:K',
 'heart:A',
 'heart:2',
 'heart:3',
 'heart:4',
 'heart:5',
 'heart:6',
 'heart:7',
 'heart:8',
 'heart:9',
 'heart:10',
 'heart:J',
 'heart:Q',
 'heart:K']
票数 1
EN

Stack Overflow用户

发布于 2015-01-27 12:10:42

问题是,您没有以正确的方式迭代,因此没有在列表中追加。正确的方法是

代码语言:javascript
运行
复制
symbols = ["spade", "clover", "diamond", "heart"]
numbers = ["A", "2", "3", "4", "5", "6", "7", "8", "9", "10", "J", "Q",         "K"]
cards = []

for j in range(len(symbols)):
    for i in range(len(numbers)):
       cards.append(str(symbols[j]+':'+str(numbers[i])))

print cards

产出:

代码语言:javascript
运行
复制
['spade:A', 'spade:2', 'spade:3', 'spade:4', 'spade:5', 'spade:6', 'spade:7',  'spade:8', 
'spade:9', 'spade:10', 'spade:J', 'spade:Q', 'spade:K', 'clover:A', 'clover:2',
'clover:3', 'clover:4', 'clover:5', 'clover:6', 'clover:7', 'clover:8', 'clover:9',
'clover:10', 'clover:J', 'clover:Q', 'clover:K', 'diamond:A', 'diamond:2', 'diamond:3',
'diamond:4', 'diamond:5', 'diamond:6', 'diamond:7', 'diamond:8', 'diamond:9', 'diamond:10',
'diamond:J', 'diamond:Q', 'diamond:K', 'heart:A', 'heart:2', 'heart:3', 'heart:4',
'heart:5', 'heart:6', 'heart:7', 'heart:8', 'heart:9', 'heart:10', 'heart:J', 'heart:Q', 'heart:K']

用python2.7中的Ipython笔记本制作

希望能帮上忙。

票数 1
EN

Stack Overflow用户

发布于 2015-01-26 17:46:21

您正在很好地迭代符号,但是当您遍历第二个循环中的数字时,您实际上是在替换由前一个循环设置的值,因此您只有最后一个循环中的值,并且所有的值都被替换了。这意味着卡“A”值在循环中设置了4次,而“心”的最后一个值被保留。同样的情况也发生在所有其他索引中。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28155547

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档