您好我需要循环几个帐户,但有时只有一个帐户。请问最好的方法是什么?
以下是我尝试的内容,但如果列表中只有一个帐户,则会失败。
accounts = ('X123456','Y325252')
for account in accounts:
do stuff
对初学者问题感到抱歉。
答案 0 :(得分:2)
如果你真的想用括号来初始化一个元组,那么在那里添加一个逗号:a = ("bc",)
。
如果只有一个项目没有逗号,Python只返回单个项目,然后for
- 循环遍历每个字符。
I.E a = ("b", "c")
返回('b','c')
,a = ("bc")
返回bc
。
a = ("b", "c");
print(a); # ('b', 'c')
a = ("bc");
print(a); # bc
相反,您可以使用大括号或括号,或添加逗号,如上所示。 这些始终被视为元组(或列表)。
accounts = ['X123456','Y325252']
for account in accounts:
do stuff
答案 1 :(得分:1)
您必须提供单元素列表或元组。以下任何一种都可以使用:
accounts = 'X123456', # one-element tuple
accounts = ('X123456',) # also tuple
accounts = ['X123456'] # list
请注意逗号生成元组,而不是括号,这就是为什么你可以将它们排除在外。
答案 2 :(得分:1)
Python for循环将遍历元组中的每个项目或字符串中的每个字符。括号中的字符串只是一个字符串。除非括号内没有逗号,否则Python不会意识到它是一个元组。
示例:
In : tuple1 = ('this', 'that')
In : tuple2 = ('this')
In : tuple3 = ('this',)
In : tuple1[0]
Out: 'this'
In : tuple2[0]
Out: 't'
In : tuple3[0]
Out: 'this'
In : for item in tuple2:
...: print(item)
...:
t
h
i
s
In : for item in tuple3:
...: print(item)
...:
this