繁体   English   中英

检查列表的百分比是否包含特定字符串

[英]Check if a percentage of a list contains a specific string

我有一个清单:

mylist = ['STN1', 'STRN2', 'BCN2', 'BCN3', 'None', 'None', 'STN5, 'STN6']

我正在尝试找到一种解决方案来检查列表的百分比是否包含特定字符串。

因此,就我而言,我想知道是否至少 40% 的列表元素中包含'ST'

我试过这样的事情:

second_list = []
for element in mylist:
    if 'ST' in element:
        second_list.append(element)
print(second_list)
size = len(mylist)
size2 = len(second_list)
if size2 >= ((4*size) / 10):
    print("true")
else:
    print("false")

有没有比我目前拥有的更简单的解决方案?

使用statistics.mean ,您可以像这样完成整个事情:

print(mean('ST' in s for s in mylist) >= 0.4)

(它确实打印True / False而不是true / false ,但这可能无关紧要。)

生成器表达式(1 for s in mylist if 'ST' in s)将为您的列表中包含“ST”的每个字符串提供一个1序列。 sum他们。 将其除以列表的长度。 这会给你一个介于 0 和 1 之间的数字。检查它是否 >= 0.4。

if sum(1 for s in mylist if 'ST' in s) / len(mylist) >= 0.4:
    print('true')
else:
    print('false')

可以将其写为sum('ST' in s for s in mylist) ,因为将True s 和False s 相加将产生相同的结果,但我更喜欢更明确...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM