注册 登录
编程论坛 Python论坛

list() 和 tuple()的问题

shikybird 发布于 2019-11-17 01:10, 2091 次点击
a = {'a' : '1', 'b' : '2'}

print('字典的值为: %s' % list(a.values()))
print("字典的值为: %s" % str(tuple(a.values())))

请问为什么tuple要加str?
新手求帮助!嘎嘎新
3 回复
#2
shikybird2019-11-17 01:13
我以为list()返还的是str,结果看了下type, 是list
tuple()的type 是 tuple
tuple就不是str吗

==============================================================
a = {'a' : '1', 'b' : '2'}

print('字典的值为: %s' % list(a.values()))
print("字典的值为: %s" % str(tuple(a.values())))

b = list(a.values())
c = tuple(a.values())

print(type(b))
print(type(c))

结果:==================================
字典的值为: ['1', '2']
字典的值为: ('1', '2')
<class 'list'>
<class 'tuple'>


[此贴子已经被作者于2019-11-17 01:16编辑过]

#3
fall_bernana2019-11-18 09:55
以下是引用shikybird在2019-11-17 01:10:31的发言:

a = {'a' : '1', 'b' : '2'}

print('字典的值为: %s' % list(a.values()))
print("字典的值为: %s" % str(tuple(a.values())))

请问为什么tuple要加str?
新手求帮助!嘎嘎新


并不是不支持tuple,这个报错信息是
print("字典的值为: %s" % tuple(a.values()))
TypeError: not all arguments converted during string formatting
意思是格式化打印默认根据元组里值的个数分别对应到%s上,所以你这个tuple有2个值而前面只有1个%s,所以报错了.
print("字典的值为: %s %s" % tuple(a.values())) 这样就没有问题,list会被认为是一个变量,然后自动转成了str(list(a.values()))
#4
shikybird2019-11-18 12:12
回复 3楼 fall_bernana
感谢!
1