我正在尝试从当前代码中打印一个表格,目前只输出一个列表,但我不知道如何实现这一目标。
{'judy': 1, 'dean': 1, 'andrew': 2, 'sam': 4, 'fred': 2}
当输入为3时,我想以这种格式输出一个列表:
4 sam
2 andrew fred
1 dean judy
或者像这样,如果输入是2(所有联系也需要按字母顺序排列):
4 sam
2 andrew fred
这是我的代码到目前为止只输出一个列表:
x = input("Enter a number: ")
with open('stream.txt','r') as f:
tweetlist = [r.split()[0] for r in f if "DM" not in r and "RT" not
in r]
tweet_counter = {}
for tweet in tweetlist:
if tweet in tweet_counter:
tweet_counter[tweet] += 1
else:
tweet_counter[tweet] = 1
popular_users = sorted(tweet_counter, key = tweet_counter.get, reverse
= True)
top = popular_users[:x]
top.sort()
print(tweet_counter)
提前感谢,非常感谢所有帮助
答案 0 :(得分:0)
有一个def add_to_cart():
# Import globals as required
global item_images
global item_names
global item_prices
global count
global total_price
# Find required item details by using the active location of the listbox cursor
img_index = item_box.index(ACTIVE)
name_index = item_box.index(ACTIVE)
price_index = item_box.index(ACTIVE)
# Append cart lists ready for html invoice
cart_imgs.append(item_images[img_index])
cart_names.append(item_names[name_index])
cart_prices.append(item_prices[price_index])
# Update total price for invoice
total_price = total_price + float(item_prices[price_index])
# Increase count per button press.
count = count + 1
对象可以计算你的第一个循环:
collections.Counter
可以替换为:
tweet_counter = {}
for tweet in tweetlist:
if tweet in tweet_counter:
tweet_counter[tweet] += 1
else:
tweet_counter[tweet] = 1
from collections import Counter
tweet_counter = Counter(tweetlist)
按值顺序返回Counter.most_common()
,然后您可以使用python的强大迭代器代数((key, value)
)来获取所需的结果。首先使用itertools
将值组合在一起,然后使用itertools.groupby()
来获取所需的数字,例如:
itertools.islice()