我有一个字符串列表,其中字符串的第一部分是列表中其他元素的子字符串。 我的目标是找到所有类似的字符串,即带有“ID\u 1”子字符串的元素,将它们添加到一个列表中,然后在“=”后面加上它们各自的值。你知道吗
示例:
start_list = ['ID_1=1', 'ID_1=2', 'ID_1=3', 'ID_2=4', 'ID_2=5', 'ID_2=6']
我试过用for循环迭代start\列表,创建各种嵌套列表,甚至尝试字典,但我一直在循环。你知道吗
我知道有一个很好的解决办法。你知道吗
我期望的结果是:
ID_1 = 6
ID_2 = 15
提前谢谢!你知道吗
鉴于这是你的第一个问题,我的方法是尽量简单和直接,并提出了许多意见,详细解释每一步。你知道吗
虽然提供更复杂或pythonic代码是一个更好的解决方案,但它最终可能会为您提供自己无法轻松理解或自定义的代码。你知道吗
如果您想更多地了解split方法的工作原理,这里有一个很好的解释和示例:
https://www.w3schools.com/python/ref_string_split.asp
在其他的答案中,你会找到更简洁的方法来获得这个结果。你知道吗
因此,为了改进我编写的代码,我建议您在这里阅读更多关于列表理解的内容:
https://www.pythonforbeginners.com/basics/list-comprehensions-in-python
你可以用defaultdict来做这个。我发现它是最紧凑和正确的变种。你知道吗
代码:
输出:
您可以迭代
d.items
以按所需格式打印数据。你知道吗代码:
输出:
您可以使用
collections.Counter
来跟踪总和。与functools.reduce
结合使用,如果您愿意,甚至可以将此作为一行:(这里,
or c
使lambda
返回c
,而不是update
的结果,即None
)相关问题 更多 >
编程相关推荐