拨开荷叶行,寻梦已然成。仙女莲花里,翩翩白鹭情。
IMG-LOGO
主页 文章列表 回圈到串列中以获取该串列中特定值的先前值

回圈到串列中以获取该串列中特定值的先前值

白鹭 - 2022-01-26 1974 0 0

我们这里有一个字符串串列,称为 list_strings `

list_strings =["john", "sarah", "bianca", "savie", "sandy", "john", "harry", "john", "debra", "john"]

如果一个指定的值是“john”并且我们可以得到john之前的所有字符串,那么输出应该是这样的!`

result = ["none", "sandy", "harry", "debra]

uj5u.com热心网友回复:

您可以使用一个简单的for回圈:

list_strings =["john", "sarah", "bianca", "savie", "sandy", "john", "harry", "john", "debra", "john"]
result = []
for i, j in enumerate(list_strings):
    if j == "john":
        if i:
            result.append(list_strings[i-1])
        else:
            result.append(None)
[None, 'sandy', 'harry', 'debra']

uj5u.com热心网友回复:

以下是您如何使用内置zip方法:

list_strings =["john", "sarah", "bianca", "savie", "sandy", "john", "harry", "john", "debra", "john"]

s = "john"

print([i for i, j in zip(list_strings[:-1], list_strings[1:]) if j == s])

输出:

['sandy', 'harry', 'debra']

为了"none"在串列中的第一个字符串为 时包含 for "john",您可以执行以下操作:

list_strings =["john", "sarah", "bianca", "savie", "sandy", "john", "harry", "john", "debra", "john"]

s = "john"

result = []
if list_strings[0] == "john":
    result.append("none")
for i, j in zip(list_strings[:-1], list_strings[1:]):
    if j == s:
        result.append(i)
print(result)

输出:

['none', 'sandy', 'harry', 'debra']

uj5u.com热心网友回复:

大概有一千种方法可以做到这一点。一个人可能正在使用串列理解并列举为

def get_before(search_name:str, names:list[str]) -> list[str]:
    return [names[i-1] if i > 0 else 'none' for i, name in enumerate(names) if name == search_name]

get_before('john', list_string)
标签:

0 评论

发表评论

您的电子邮件地址不会被公开。 必填的字段已做标记 *