当遍历列表时,用户,我想只打印字典中用户的名字来祝贺他们,然后重复使用该列表来打印尚未完成调查的用户。为什么在第一个for循环用户之后,列表是否会被更改,或者如何重置它,因为我认为列表没有被修改。我可以让这个程序工作的唯一方法是在程序开头创建名为testusers的第二个列表。
users = ['jen','seymor', 'patrick', 'tony', 'sarah','edward','billie','mark','jan']
testusers = users
favorite_languages = {
'jen': 'python',
'sarah': 'c',
'edward': 'ruby',
'phil': 'python',
'jan': 'python',
'mark': 'java',
}
print '\nThe following users have taken the poll\n'
for users in favorite_languages.keys():
print('\t'+users.title() + ", thank you for talking the poll.")
print '\nThe following "PERSONS" have not taken the poll.\n'
for ditcher in users:
if ditcher not in favorite_languages.keys():
print "Hey "+ ditcher.title()+ " take the poll!"
答案 0 :(得分:3)
users = ['jen', 'seymor', 'patrick', 'tony', 'sarah', 'edward', 'billie', 'mark', 'jan']
...
for users in favorite_languages.keys():
一次只能调用users
一件事。调用第二个变量user
。
答案 1 :(得分:2)
您不应该使用for users in favorite_languages.keys():
,这样做会覆盖users
(您的列表)的原始值。
在for
循环结束时,users
获取字典中的最后一个值(可能是任何键,因为字典未被排序):
>>> users = ['jen','seymor', 'patrick', 'tony', 'sarah','edward','billie','mark','jan']
>>> for users in favorite_languages.keys():
... print users
...
sarah
phil
mark
jan
edward
jen # <=== users takes the last printed value
>>> users
'jen'
相反,请为循环变量选择另一个名称:
for u in favorite_languages.keys():
print('\t'+u.title() + ", thank you for talking the poll.")