Python,拼接列表,步骤和仅提取第一个字符

时间:2012-12-29 22:45:24

标签: python slice

我知道如何进行基本拼接。但我想知道是否可以拼接一个列表,返回每个第10个元素,只返回该元素的最后2个字符。

['1111',' 1112',' 1113',' 1114',' 1115',' 1116',' 1117',' 1118',' 1119',' 1120',' 1121',' 1122',' 1123',' 1124',' 1125',' 1126',' 1127',' 1128',' 1129',' 1130',' 1131',' 1132',' 1133',' 1134',' 1135',' 1136',' 1137',' 1138',' 1139',' 1140',' 1141',' 1142',' 1143',' 1144',' 1145',' 1146',' 1147',' 1148',' 1149',' 1150',' 1151',' 1152',' 1153',' 1154',' 1155',' 1156',' 1157',' 1158',' 1159',' 1160',' 1161',' 1162',' 1163',' 1164',' 1165',' 1166',' 1167',' 1168',' 1169',' 1170',' 1171',' 1172',' 1173',' 1174',' 1175',' 1176',' 1177',' 1178',' 1179',' 1180',' 1181',' 1182',' 1183',' 1184',' 1185',' 1186',' 1187',' 1188',' 1189',' 1190',' 1191',' 1192',' 1193',' 1194',' 1195',' 1196',' 1197',' 1198',' 1199']

我可以毫无问题地获得每第10个字符串;

>>test[::10]
['1111', ' 1121', ' 1131', ' 1141', ' 1151', ' 1161', ' 1171', ' 1181', ' 1191']

我能够在上面的字符串中获取最后两个字符

所以我尝试了这个并且它不起作用。

test[::10][-2::]
[1181',' 1191]

1 个答案:

答案 0 :(得分:6)

您必须使用列表推导将切片应用于包含的元素:

[v[-2:] for v in test[::10]]

这给出了:

>>> [v[-2:] for v in test[::10]]
['11', '21', '31', '41', '51', '61', '71', '81', '91']

test[::10]返回一个列表本身,[-2::]只从该列表中获取最后两个元素,并且不将该切片应用于列表中包含的元素。

相关问题