在Python中创建一个包含字母的集合

8 投票
3 回答
22484 浏览
提问于 2025-04-18 07:02

我正在尝试创建一个包含字母表中所有字母的集合,但我不明白为什么代码不工作。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

ab这些单独的字母并不是字符串,它们只是名字。在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内置的setstring.ascii_lowercase,可以这样写:

import string
s = set(string.ascii_lowercase)

撰写回答