如何统计Python字符串中引用的列表元素总使用次数
实现方案
你之前尝试的方法未生效,主要有两个核心原因:
- 原始拼接代码没有将int类型的列表元素转为字符串,会直接触发
TypeError,无法得到合法的str1 - 列表中存在int、str两类不同类型的元素,未统一类型就直接判断是否存在于字符串中,会出现匹配失效的问题
具体可按如下代码实现:
arr = [1, 'apple', 'banana', 2, 3] # 修正拼接逻辑,将所有列表元素转成字符串后再拼接 str1 = "this " + str(arr[0]) + " then " + str(arr[3]) + " next " + str(arr[2]) used_count = 0 for item in arr: # 统一转成字符串后判断是否在str1中出现 if str(item) in str1: used_count += 1 print(f'arr[] was used "{used_count}" times in str1')
运行后输出结果:
arr[] was used "3" times in str1
异常场景适配
如果你的实际使用场景中存在列表元素转字符串后互相包含的情况(比如列表同时存在1和11,字符串中出现11会同时匹配到两个元素,导致计数错误),可以调整为拆分字符串后再匹配,避免误判:
arr = [1, 'apple', 'banana', 2, 3, 11] str1 = "this " + str(arr[0]) + " then " + str(arr[3]) + " next " + str(arr[2]) split_str = str1.split() used_count = 0 for item in arr: if str(item) in split_str: used_count += 1 print(f'arr[] was used "{used_count}" times in str1')
内容的提问来源于stack exchange,提问作者Tentacles
相关产品推荐
相关产品推荐

