0

私は2つのリストを持っています:そのうちの1つはリストのリストです。それらは次のとおりです-

lists_of_lists = ['1', '4', '7', '13', '16', '21', '32', '36'],['3', '6', '8', '14', '22', '26', '31', '40']

just_a_list =['THEQUICKBROWNFOXJUMPEDOVERTHELAZYDOG', 'IWOULDLOVETOGETOVERWITHTHISASSOONASPOSSIBLE']

lists_of_listsは、次のようにju​​st_a_listの要素をスライスするために使用さ れます。次のよう['1', '4', '7', '13', '16', '21', '32', '36']に文字列をスライスします。'THEQUICKBROWNFOXJUMPEDOVERTHELAZYDOG'

'1' - '4' - 'HEQU'
'7' - '13' - 'KBROWNF'
'16' - '21' - 'JUMPED'
'32' - '36' - 'ZYDOG'

注意点-

の各リストにlist_of_listsは偶数の番号があります。

i'thの位置にあるリストは、の位置list_of_listsにある文字列に属します。i'thjust_a_list

上記のプロセスをどのように実行するかについて、私を助けてください。

ありがとう

4

2 に答える 2

5

zip()文字列リストとスライスリストを組み合わせるために使用し、次にzip()プラスiter()トリックを使用して開始値と停止値をペアにします。

for slicelist, text in zip(lists_of_lists, just_a_list):
    for start, stop in zip(*([iter(slicelist)]*2)):
        print(text[int(start):int(stop) + 1])

ストップインデックスに1を追加する必要があることに注意してください。これは、包括的である必要があるように見えるためですが、Pythonではストップインデックスは排他的です。

これは与える:

>>> for slicelist, text in zip(lists_of_lists, just_a_list):
...     for start, stop in zip(*([iter(slicelist)]*2)):
...         print(text[int(start):int(stop) + 1])
... 
HEQU
KBROWNF
JUMPED
YDOG
ULDL
VETOGET
HTHIS
ONASPOSSIB
于 2013-03-25T16:50:44.950 に答える
0

私があなたを正しく理解しているなら:

>>> ls = just_a_list =['THEQUICKBROWNFOXJUMPEDOVERTHELAZYDOG', 'IWOULDLOVETOGETOVERWITHTHISASSOONASPOSSIBLE']

>>> ls[0]
'THEQUICKBROWNFOXJUMPEDOVERTHELAZYDOG'

# so we do    
# your index was off by one
>>> ls[0][1:5]
'HEQU'

>>> ls[0][7:14]
'KBROWNF'
于 2013-03-25T16:51:23.943 に答える