将字符串视为列表

时间:2019-02-10 14:11:14

标签: python

这里有新手问题

我正在处理不同长度的字符串列表(每个字符串都是数字),例如

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项长。 再次感谢

3 个答案:

答案 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:]即可获取列表的最后一个元素。