在Python中添加字典条目时逗号的作用

时间:2012-12-27 09:33:18

标签: python dictionary add comma

我有一个简单的问题。

我有一个字典:table = collections.defaultdict(set),以及之前定义的语法,包含如下规则:

Rule(('Noun', ('money',)))
Rule(('Noun', ('book',)))
Rule(('S', ('book',)))

现在,当我输入时,没有任何反应。

for rule in grammar:
    if rule.symbols == ("book"):
        table[col - 1, col].add(rule.head)

当我输入时,会添加该条目。

for rule in grammar:
    if rule.symbols == ("book",):
        table[col - 1, col].add(rule.head)

两者之间的唯一区别是“书”背后的逗号。这个逗号做了什么,为什么有必要?

谢谢!

4 个答案:

答案 0 :(得分:4)

你需要添加逗号才能使它成为一个元组,否则它只是一个字符串。

答案 1 :(得分:4)

一个是字符串,第二个是元组(,):

>>> ("book")
'book'
>>> ("book",)
('book',)

答案 2 :(得分:4)

在第一种情况下,("book") parens只是对表达式进行分组的一种方式。该表达式的值只是字符串"book"

在第二种情况下,它创建了一个元组,其中包含一个元素。

答案 3 :(得分:0)

逗号将表达式类型从str(带有无用括号)转换为tuple单个元素。

使用type()查看此操作:

>>> type(("book"))
<class 'str'>
>>> type(("book",))
<class 'tuple'>