如何使用第二个列表从第一个列表中调用字符

时间:2017-06-29 00:15:29

标签: list python-3.x for-loop

我想输入两个逗号分隔的字符串:第一个是一组字符串,第二个是一组范围,并根据范围返回子字符串,例如:

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

然后我想使用第二个范围列表从第一个列表中打印出指定的字符。

一个例子:

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

我希望输出看起来像这样:

bc
bcd
defghi

有什么建议吗?提前谢谢!

1 个答案:

答案 0 :(得分:0)

split(':')将“范围”分成两个组成部分。 map(int, ...)将它们转换为整数。 string[a:b]会将ab的字符设为。

zip是一种从两个不同列表中读取的简单方法。

如果您有任何其他问题,请与我们联系:

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