|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 fazerse 于 2021-1-29 06:28 编辑
前辈们好, 我又来提问了. 做课后题时,发现了 在创设 ,使用 字典时的 一些疑问
上代码运行结果:
sample={a:'1',2:'b'}
Traceback (most recent call last):
File "<pyshell#2>", line 1, in <module>
sample={a:'1',2:'b'}
NameError: name 'a' is not defined
然后,
sample ={'a':'1',2:'b'} 又可以,
那么说明 key 必须要 文本格式吗? 可是这里 2 作为KEY 又可以 ?
同样的方式 到 dict() 工厂函数
sampleSE=dict(a=1,'b'=2)
SyntaxError: keyword can't be an expression
>>> sampleSE=dict(a=1,2='b')
SyntaxError: keyword can't be an expression
>>> sampleSE=dict(a='1',2='b')
SyntaxError: keyword can't be an expression
以上都不行只有
>>> sampleSE=dict(a='1',b='2') 才可以
返回{'b': '2', 'a': '1'}
然后sampleSE=dict(a=1,b=2)
则返回了
{'b': 2, 'a': 1}
这里 key 都 是文本格式. value 可以是 文本,也可以是整数
再来,
sampleTR=dict (1='a',2=b)
SyntaxError: keyword can't be an expression
>>> sampleTR=dict(1=a,2=b)
SyntaxError: keyword can't be an expression
>>> sampleTR=dict('1'=a,'2'=b)
SyntaxError: keyword can't be an expression
>>> sampleTR=dict('a'=1,'b'=2)
SyntaxError: keyword can't be an expression
这时 key 值 整数也不行, 文本也不行.
总结我的问题就是 不同方法创设字典时, key ,value 的数据类型具体是什么规范规则.
请高手作答.
如果你非要用 dict(**kwargs)的方式的话起码你的表达式得符合表达式的规则
表达式不允许 1 = 2 的形式自然就不能被python认同
同理 1 = "a" 也不允许
a = b 即使 b 没有定义的情况也不允许
表达式左边会是 key ,右边就是 value
如果你非得想要 通过 dict()来创建数字作为键值,不妨换一种方式 - >>> listDict = [[1,2],[3,4]]
- >>> dict(listDict)
- {1: 2, 3: 4}
复制代码
你可以 help(dict)来自己查看dict的用法
|
|