当列表中只有一个项目时,Python循环

时间:2018-02-02 06:08:31

标签: loops python-3.6

您好我需要循环几个帐户,但有时只有一个帐户。请问最好的方法是什么?

以下是我尝试的内容,但如果列表中只有一个帐户,则会失败。

accounts = ('X123456','Y325252')
for account in accounts:
    do stuff

对初学者问题感到抱歉。

3 个答案:

答案 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