首先,我对编程很陌生。 (这是我在溢出中的第二个问题。)
我已经学习了将近6个小时。我已经在stackoverflow和许多其他python网站上阅读了很多内容。我的大部分疑虑都消失了,现在我找到了一个我无法解决的问题。
看,我有这个简单的字典:
player_dict = {'Alice': Rating(),
'Bob': Rating(),
'Carla': Rating(),
'Daniel': Rating(),
'Esdras': Rating(),
'Flavia': Rating(),
'Glauber': Rating(),
'Hudson': Rating(),
'Iara': Rating(),
'Josiane':Rating()}
rating()方法创建一个像这样的元组
trueskill.Rating(mu=25, sigma=8.33333)
要更新这些评级,我应该在这样的
中使用Rating()对象rating_groups = [(player_dict['Alice'],), (player_dict['Bob'],), (player_dict['Carla'],),
(player_dict['Daniel'],), [...brevity] ]
当我打印(rating_groups)时,IDLE会将此返回给我:
[(trueskill.Rating(mu=25, sigma=8.33333),), (trueskill.Rating(mu=25, sigma=8.33333),), [...brevity]
所以,这是我的问题。这个最后一个元组在右括号旁边有这个“奇怪的”第二个逗号。我已经知道它正在执行的代码(因为API的cuz)。 我想知道的是我如何在这样的元组中转换player_dictionary。我不太确定,但看起来我正在使用元组元组。
我在这里尝试了这个代码:player_listTuple = [(v, k) for v, k in player_dict.items()]
而Idle给了我这个
[('Alice', trueskill.Rating(mu=25.0, sigma=8.33333)), ('Bob', trueskill.Rating(mu=25.0, sigma=8.33333)),
没有我期待看到的逗号。
感谢您的支持< 3
答案 0 :(得分:1)
要将player_dictionary
转换为元组列表,您可以尝试以下操作:
[(item,) for item in player_dictionary.values()]
答案 1 :(得分:1)
comma
用于区分由tuple
expression
和()
例如:
>>> s = ('hello_world')
>>> type(s)
<type 'str'>
>>>
>>> s = ('hello_world',)
>>> type(s)
<type 'tuple'>
如果超过1 item
,则无需添加即可添加额外的comma
。见ex:
>>> s = (1, 2)
>>> type(s)
<type 'tuple'>
>>> print(s)
(1, 2)
>>>
>>> s1 = (1, 2,)
>>> print(s1)
(1, 2)
>>> print(s1)
(1, 2)
假设你需要添加comma
,你可以做这样的事情,
player_listTuple = [(v, k, None) for v, k in player_dict.items()]