python - Python 中 zip_longest() 中每个列表的单独计数器
问题描述
我在 Windows 10 上使用 Python 3.8.3。我的代码:
from itertools import zip_longest
def uniqify(passedlist):
seen = set()
unique = []
duplicate = []
for item in passedlist:
if item not in seen:
seen.add(item)
duplicate.append("") # add empty string for formatting output
unique.append(item)
elif item in seen:
duplicate.append(item)
unique.append("") # add empty string for formatting output
return unique, duplicate
listFruits = ["apple", "orange", "orange", "banana", "banana", "banana", "peach", "cherry", "cherry"]
listUnique, listDuplicate = uniqify(listFruits)
print(f"Fruits\t\tUnique\t\tDuplicates")
print(f"------\t\t------\t\t----------")
for num, (fruit, unique, duplicate) in enumerate(zip_longest(listFruits, listUnique, listDuplicate), start=1):
print(f"{num}: {fruit}\t{unique}\t\t{duplicate}")
电流输出:
Fruits Unique Duplicates
------ ------ ----------
1: apple apple
2: orange orange
3: orange orange
4: banana banana
5: banana banana
6: banana banana
7: peach peach
8: cherry cherry
9: cherry cherry
我希望在循环listUnique
中有一个单独的计数器。listDuplicate
for
期望的输出:
Fruits Unique Duplicates
------ ------ ----------
1: apple 1. apple
2: orange 2. orange
3: orange 1. orange
4: banana 3. banana
5: banana 2. banana
6: banana 3. banana
7: peach 4. peach
8: cherry 5. cherry
9: cherry 4. cherry
我已经在互联网上搜索了这个,但我找不到解决方案。我目前正在考虑只在 , 中创建单独的列表uniqify()
,并插入空字符串以格式化输出。
有没有办法在使用时为列表设置单独的计数器zip_longest()
?
任何提示将不胜感激。
解决方案
只需在循环时手动计数:
uniq_count, dupe_count = 0, 0
for num, (fruit, unique, duplicate) in enumerate(zip_longest(listFruits, listUnique, listDuplicate), start=1):
if unique:
uniq_count += 1
unique = f'{uniq_count}. {unique}'
if duplicate:
dupe_count += 1
duplicate = f'{dupe_count}. {duplicate}'
print(f"{num}: {fruit}\t{unique}\t\t{duplicate}")
推荐阅读
- c# - 字符串格式未被识别为有效的日期时间格式
- python - Altair 中的条形图:ValueError:分面图无法分层
- javascript - 使用语法 Api 时无法 GET /
- ios - dyld:库未加载:@rpath/glog.framework/glog 和应用程序未打开
- python-3.x - Selenium 由于错误而无法加载链接时如何跳转到新网站?
- javascript - 在可选的发送 2 个道具功能之后,打字稿错误无法调用可能未定义的对象
- python - 如何创建最大强连通分量图
- machine-learning - 在使用 mlr3pipeline 编码和缩放数据后,无法通过 mlr3proba 训练数据集
- pytest - Pytest:如何参数化输入
- javascript - 通过 JavaScript(Django、Python)创建的圆圈未显示在网页中