1

基本的なスプライシングの方法を知っています。しかし、リストをつなぎ合わせて、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']

上記の文字列の最後の2文字を取得できるようにする方法

だから私はこれを試しましたが、うまくいきません。

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

1 に答える 1

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つの要素を取得し、そのスライスをリストの含ま[-2::]れている要素に適用しません。

于 2012-12-29T22:46:50.580 に答える