gpt4 book ai didi

python - 如何将列表中的单词提取到新列表中?

转载 作者:太空宇宙 更新时间:2023-11-04 11:13:43 25 4
gpt4 key购买 nike

我想从最大的数字 3 到最小的数字 is love 中提取单词

[1, 'hello', 2, ' word', 3, ' love', 1, ' hi', 1, ' you']

结果将是:

['love','word','hello', 'hi','you']

感谢您的帮助!

我有这段代码,但由于错误消息 TypeError: sort() takes no positional arguments 我卡住了:

s="hello, word, word, love, love, love, hi, you"


def f(s):
all=s.split(',')
print(all)
uni=[]
count=[]
sorted=[]
for word in all:
if word not in uni :
uni.append(word)
print(uni)
for word in uni:
c=all.count(word)
count.extend([c,word])
print(count)
count.sort(reversed)
for w in count:
sorted.append(w(1))
return sorted

f(s)
print(sorted)

最佳答案

您可以使用zip 将单词与数字配对,然后对其进行排序

>>> lst = [1, 'hello', 2, ' word', 3, ' love', 1, ' hi', 1, ' you']
>>> [word.strip() for _,word in sorted(zip(lst[::2], lst[1::2]), reverse=True)]
['love', 'word', 'hello', 'you', 'hi']

要保留相同频率单词的顺序,您必须按如下方式zip range

>>> [w.strip() for *_,w in sorted(zip(lst[::2], range(len(lst)//2, 0, -1), lst[1::2]), reverse=True)]
['love', 'word', 'hello', 'hi', 'you']

关于python - 如何将列表中的单词提取到新列表中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57542668/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com