[英]python - how to use the join method and sort method
我的目的是将输入作为字符串,并按字母顺序返回该字符串的小写字母列表,没有重复,没有标点符号。 例如,输入“快乐!” 会得到 ['a','h','p','y']。 我尝试使用 join 函数来摆脱我的标点符号,但不知何故它不起作用。 有人知道为什么吗? 另外, sort.() 可以对字母排序吗? 我是否以正确的方式使用它? 谢谢!
def split(a):
a.lower()
return [char for char in a]
def f(a):
i=split(a)
s=set(i)
l=list(s)
v=l.join(u for u in l if u not in ("?", ".", ";", ":", "!"))
v.sort()
return v
.join()
是一个字符串方法,但在列表上使用,因此代码引发异常,但join
在这里并不是真正需要的。
你在正确的轨道上使用set()
。 它只存储唯一的项目,因此创建一组输入并用小写字母计算交集(&)。 对结果进行排序:
>>> import string
>>> s = 'Happy!'
>>> sorted(set(s.lower()) & set(string.ascii_lowercase))
['a', 'h', 'p', 'y']
你可以使用:
def f(a):
return sorted(set(a.lower().strip('?.;:!')))
>>> f('Happy!')
['a', 'h', 'p', 'y']
您也可以为此使用正则表达式:
pattern = re.compile(r'[^a-z]')
string = 'Hello@ W0rld!!#@'
print(sorted(set(pattern.sub('', string))))
输出:
['d', 'e', 'l', 'o', 'r']
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.