计算 python 列表中不区分大小写的相同元素
Count the same elements with insensitive case in a list in python
我是 python 的新手,我有一个关于在不区分大小写的列表中计算元素的问题。例如我有一个列表如下:
My_list = ['modulus of elasticity', 'NIRS', 'mechanical properties', 'Modulus of elasticity', 'NIRS', 'mechanical properties']
我想要的词典应该是这样的:
Desired_dictionary = {'modulus of elasticity': 2, 'NIRS': 2, 'mechanical properties': 2}
实际上我知道如何以正常方式计算它们,但是像这样的词:弹性模量和弹性模量会算作为不同的元素。注意到:我想让NIRS保持大写。我想知道 python 中是否有办法处理这种敏感情况。任何帮助都感激不尽。谢谢!
from collections import Counter
orig = Counter(My_list)
lower = Counter(map(str.lower, My_list))
desired = {}
for k_orig in orig:
k_lower = k_orig.lower()
if lower[k_lower] == orig[k_orig]:
desired[k_orig] = orig[k_orig]
else:
desired[k_lower] = lower[k_lower]
desired
# {'modulus of elasticity': 2, 'NIRS': 2, 'mechanical properties': 2}
我是 python 的新手,我有一个关于在不区分大小写的列表中计算元素的问题。例如我有一个列表如下:
My_list = ['modulus of elasticity', 'NIRS', 'mechanical properties', 'Modulus of elasticity', 'NIRS', 'mechanical properties']
我想要的词典应该是这样的:
Desired_dictionary = {'modulus of elasticity': 2, 'NIRS': 2, 'mechanical properties': 2}
实际上我知道如何以正常方式计算它们,但是像这样的词:弹性模量和弹性模量会算作为不同的元素。注意到:我想让NIRS保持大写。我想知道 python 中是否有办法处理这种敏感情况。任何帮助都感激不尽。谢谢!
from collections import Counter
orig = Counter(My_list)
lower = Counter(map(str.lower, My_list))
desired = {}
for k_orig in orig:
k_lower = k_orig.lower()
if lower[k_lower] == orig[k_orig]:
desired[k_orig] = orig[k_orig]
else:
desired[k_lower] = lower[k_lower]
desired
# {'modulus of elasticity': 2, 'NIRS': 2, 'mechanical properties': 2}