这里有新手问题
我正在处理不同长度的字符串列表(每个字符串都是数字),例如
a = ['1', '5', '8', '11']
我需要使用以下各项来评估每个列表中的最后一项:a [-1]在大多数情况下都可以。
但是,当列表中只有一项长度超过1个字符时,我有一个问题:
a = ['10']
因为我使用的是For循环:
for el in a:
el[-1].....
el[-1]
等于'0'而不是'10',因为我需要这样
我该如何克服呢?
编辑帖子。 感谢大家的所有建议。很抱歉,但是我把问题弄得一团糟,没有正确说明问题。 我有一个列表列表,所有列表看起来都像上面的一样:
mylist = [a, b, c, ....] #a = ['1', '5', '8', '11']....
然后我在mylist上执行一个循环,其中每个列表的最后一个元素指向字典键mygraph2.nodes [el [-1]]:
for el in mylist:
for loop_var in mygraph2.nodes[el[-1]].neighbors:
further code here....
我找到了解决问题的方法,但这并不优雅。
if len(el) == 1:
el = mylist
我强迫最后一个元素成为列表,即使列表1项长。 再次感谢
答案 0 :(得分:1)
代码中的for
循环会将列表a
中的元素分配给el
循环中的each
变量。 el
的类型为字符串(str
,在字符串对象上使用[-1]
称为String Manipulation。
如果a = ['1','5','10']:
1. el = '1', el[-1] = '1', el[0] = '1'
2. el = '5', el[-1] = '5', el[0] = '5'
3. el = '10', el[-1] = '0', el[0] = '1'
因此,您可以只使用el
变量,而不要在其上使用[-1]
。
而且,如果您想要列表a
中的最后一个元素,只需使用a[-1]
,就不需要循环。
答案 1 :(得分:0)
只需执行[-1]即可,因为这会为您提供列表的最后一个元素('10')。 进行for循环是错误的,当您到达字符串的最后一个元素“ 0”时,它会给您一个[-1] [-1]。请记住,在python中,字符串也被视为列表。
因此,如果x ='10',则x [0] ='1'并且x [1] = x [-1] ='0'
此外,如果您希望输出为整数,则可以将输出转换为int(a [-1])
答案 2 :(得分:0)
我认为您不需要循环访问列表,因为您可以获得最后一个元素的最后一个 数字 。
只需使用a[-1:]
即可获取列表的最后一个元素。