Python 如何切片列表元素(获取列表元素的子字符串)?
该计划:Python 如何切片列表元素(获取列表元素的子字符串)?,python,Python,该计划: lijst = ('123-Abc','456-Def','789-Ghi') print "lijst[1] = " + lijst[1] print "lijst[1][4:] = " + lijst[1][4:] print "lijst[1][4:1] = " + lijst[1][4:1] 有以下输出: lijst[1] = 456-Def lijst[1][4:] = Def lijst[1][4:1] = ??? 我希望最后一行是“D” 那么
lijst = ('123-Abc','456-Def','789-Ghi')
print "lijst[1] = " + lijst[1]
print "lijst[1][4:] = " + lijst[1][4:]
print "lijst[1][4:1] = " + lijst[1][4:1]
有以下输出:
lijst[1] = 456-Def
lijst[1][4:] = Def
lijst[1][4:1] =
???
我希望最后一行是“D”
那么,从列表元素中获取子字符串的正确语法是什么?
(我在raspberry pi上运行python 2.7.3)在索引
a
和b
(不包括b
)之间获得一个子字符串是使用切片[a:b]
实现的。要获取索引i
处的字符,只需使用[i]
(将字符串视为字符数组)
切片的正确语法是
[start:stop]
,而不是问题中使用的[start:count]
。所以你实际上是在为你的最后一行寻找lijst[1][4:4+1]
或lijst[1][4:5]
有很多很好的理由可以这样做。例如,可以使用相同的索引将字符串拆分为两部分
lijst[1][:4] = "456-"
lijst[1][4:] = "Def"
及
请注意如何省去第一个或最后一个条目以指示字符串的开始或结束
使用这样的索引的另一个很好的特性是字符串的长度由stop-start
给出。所以
lijst[1][2:6] = "6-De"
这个子串的长度是6-2=4
最后一个注意事项是,您还可以通过添加另一个步骤索引来跳过字符串中的条目:
lijst[1][0:7:2] = "46Df"
它从开始(索引0)到结束(索引7),并显示每一秒的条目。由于可以省略起始索引和结束索引,因此这相当于
lijst[1][::2]
[a:b]语法中的数字应为“从a到b”,而不是“从a到b”。您要求从4到1的子字符串,该子字符串为空,因为1是。新手犯了错误(其他语言的mid()和substr()太多)
lijst[1][0:7:2] = "46Df"
lijst[1][::2]