在Python中创建一个包含字母的集合
我正在尝试创建一个包含字母表中所有字母的集合,但我不明白为什么代码不工作。Python给我报错,说“全局名称'a'未定义。”有没有什么想法?提前谢谢你。
s = set()
s = {a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z}
3 个回答
5
@lenik 的回答是最好的,但要记住,每个字符串也是一个可迭代的序列,可以传递给 set()
。所以,你可以直接使用字符串,而不是先把每个字母放到一个列表里:
letters = set("abcdefghijklmnopqrstuwxyz")
6
试试这个
import string
s = set(string.ascii_lowercase)
17
a
、b
这些单独的字母并不是字符串,它们只是名字。在Python中,字符串必须用单引号('a'
)、双引号("a"
)或者三重引号("""a"""
或'''a'''
)包起来。所以,你的代码的正确写法应该是:
# s = set() - this is useless, the next line is already creating a set
s = {'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z'}
说到这里,有一种更简洁的方法可以做到这一点,那就是使用Python内置的set和string.ascii_lowercase,可以这样写:
import string
s = set(string.ascii_lowercase)