gpt4 book ai didi

python - 在特定字符串后获取多个数字

转载 作者:行者123 更新时间:2023-11-30 23:15:01 27 4
gpt4 key购买 nike

我在从“RND”之后的列表中获取数字时遇到问题:

myList = [['1123-TDT', '10593917/5422', 'RND', '20.5', 'QWTQWGSAG', 'RND', '40'],          ['1156-TDT', '51205915/6166', 'ASDWT', '111551', 'RND', '35']]

如果列表项(myList[1])中只有一个 RND,我可以在 RND 之后获取数字。但如果有两个 em(myList[0]),那么什么也不会发生。

我所拥有的示例:

myList = [['1123-TDT', '10593917/5422', 'RND', '20.5', 'QWTQWGSAG', 'RND', '40'],          ['1156-TDT', '51205915/6166', 'ASDWT', '111551', 'RND', '35']]listLen = len(myList)for x in range(listLen):    if 'RND' in myList[x]:        y = myList[x].index('RND')        z = myList[x][y+1]        print(z)

输出看起来像这样:

20.535

但我希望它是:

20.5 4035

提前致谢!

最佳答案

您需要访问每个子列表以及子列表中的每个子元素,然后如果当前元素等于“RND”,则获取当前元素之后索引处的元素:

print( [sub[ind] for sub in myList for ind, ele in enumerate(sub,1) if ele == "RND"])
['20.5', '40', '35']

使用两个普通循环:

# iterate over each sublist
for sub in myList:
# check every element in each sublist for "RND"
# if we find a match print the next element in the list
for ind, ele in enumerate(sub,1):
if ele == "RND":
print(sub[ind])

我们使用enumerate(sub,1),其中1是起始索引,因此当我们访问sub[ind]时,如果我们使用的起始索引为 0

y = myList[x].index('RND') 仅获取第一个出现的位置。

如果您希望每个子列表的输出打印在一行上,请使用 end="":

for sub in myList:
# check every element in each sublist for "RND"
# if we find a match print the next element in the list
for ind, ele in enumerate(sub,1):
if ele == "RND":
print(sub[ind],end=" ")
print()
20.5 40
35

关于python - 在特定字符串后获取多个数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28461926/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com