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

Mwi*_*s03 1 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']
Run Code Online (Sandbox Code Playgroud)

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

>>test[::10]
['1111', ' 1121', ' 1131', ' 1141', ' 1151', ' 1161', ' 1171', ' 1181', ' 1191']
Run Code Online (Sandbox Code Playgroud)

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

所以我尝试了这个并没有用.

test[::10][-2::]
[1181',' 1191]
Run Code Online (Sandbox Code Playgroud)

Mar*_*ers 6

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

[v[-2:] for v in test[::10]]
Run Code Online (Sandbox Code Playgroud)

这给出了:

>>> [v[-2:] for v in test[::10]]
['11', '21', '31', '41', '51', '61', '71', '81', '91']
Run Code Online (Sandbox Code Playgroud)

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

  • @RocketDonkey:请不要因为代表差异而删除.如果我每次都有更多的代表发布,那我就没有得到今天的代表!:-)如果你觉得你的答案(比我的只落后2秒)有一些东西可以提供给OP和更广泛的观众,我的答案没有,请随时取消删除! (2认同)