2017-06-29 11 views
0

第二のリストで最初のリストから文字を呼び出す方法:文字列の最初のセット、範囲の第二のセットと、例えば、範囲に基づいて部分文字列を返す:私は、文字列をカンマ区切り入力2にしたい

x=input("Input string to search: ") 
search=x.split(',') 
y=input("Input numbers to locate: ") 
numbers=y.split(',') 

次に、範囲の2番目のリストを使用して、最初のリストから指定された文字を出力したいとします。

例:

bc 
bcd 
defghi 

任意の提案を:

Input string to search: abcdefffg,aabcdefghi,bbcccdefghi 
Input numbers to locate: 1:2,2:3,5:9 

私は、出力は次のようになりたいですか?前もって感謝します!

+0

あなたのコードは、これまでだ、とあなたがトラブルにどこを実行したのですか? – smarx

+0

最初の数字は開始点で、2番目の数字はいくつの文字数ですか? – smarx

答えて

0

split(':')は、2つのコンポーネントに「範囲」を分割します。 map(int, ...)はそれらを整数に変換します。 string[a:b]は、インデックスaからbまでの文字を取ります。

zipは、2つの異なるリストを組み合わせて読むのが簡単な方法です。

は、あなたが他の質問がある場合は、私に教えてください:

x = "abcdefffg,aabcdefghi,bbcccdefghi" 
search = x.split(',') 
y = "1:2,2:3,5:9" 
numbers = y.split(',') 

results = [] 
for string, rng in zip(search, numbers): 
    start, how_many = map(int, rng.split(':')) 
    results.append(string[start:start+how_many]) 

print(" ".join(results)) 

# Output: 
# bc bcd defghi 
+0

ありがとう、私は今一週間これで苦労してきました! –

関連する問題