gpt4 book ai didi

python - 使用列表理解和集合

转载 作者:太空宇宙 更新时间:2023-11-03 15:22:14 25 4
gpt4 key购买 nike

创建并打印满足以下两个条件的单词列表:

  • 单词长度至少为8个字符;
  • 由奇数字母组成的单词在小写单词集合中;和
  • 由偶数字母组成的单词在小写单词集合中。

例如,单词“ballooned”应该包含在您的列表中,因为由奇数字母组成的单词“blond”和由偶数字母组成的单词“aloe”都在小写单词的集合。同样,“triennially”拆分为“tinily”和“renal”,两者均在词表中。

我的老师告诉我们应该使用一个集合:s=set(lowers) 因为这样会更快。

我目前拥有的:

s=set(lowers)
[word for word in lowers if len(word)>=8
and list(word)(::2) in s
and list(word)(::-2) in s]

我认为我没有正确使用该套装。有人可以帮我让它工作吗

最佳答案

问题是您将 word 转换为列表(不必要),您的切片不在括号中(您使用了括号),并且您的第二个切片使用了错误的索引(应该是 1::2,而不是 ::-2)。

以下是正确完成的切片:

>>> word = "ballooned"
>>> word[::2]
'blond'
>>> word[1::2]
'aloe'

请注意,s 是小写单词集合的奇数名称。更好的名称是 words

您对 set 的使用是正确的。您的老师希望您使用集合的原因是测试集合的成员资格比测试列表快得多。

综合:

words = set(lowers)
[word for word in words if len(word) >= 8
and word[::2] in words
and word[1::2] in words]

关于python - 使用列表理解和集合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13348991/

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