标题:list() 和 tuple()的问题
只看楼主
shikybird
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2019-11-17
结帖率:0
已结贴  问题点数:20 回复次数:3 
list() 和 tuple()的问题
a = {'a' : '1', 'b' : '2'}

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

请问为什么tuple要加str?
新手求帮助!嘎嘎新
搜索更多相关主题的帖子: print str list 字典 values 
2019-11-17 01:10
shikybird
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2019-11-17
得分:0 
我以为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编辑过]


菜鸟一枚!非常菜!
2019-11-17 01:13
fall_bernana
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:贵宾
威 望:17
帖 子:240
专家分:2086
注 册:2019-8-16
得分:20 
以下是引用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()))
2019-11-18 09:55
shikybird
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2019-11-17
得分:0 
回复 3楼 fall_bernana
感谢!

菜鸟一枚!非常菜!
2019-11-18 12:12



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-497854-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.096890 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved