1 1992w 2020-04-01 08:30:22 +08:00 ![]() 返回一个没有任何 key 的字典,{}字典的字面量写法 |
![]() | 2 YUX PRO 一般是 list=[] 空 list |
![]() | 3 Yourshell 2020-04-01 08:31:31 +08:00 via iPhone 就返回一个空的字典呗,好久没写了也不知道对不对 |
![]() | 4 |
![]() | 5 jeenysem 2020-04-01 08:34:26 +08:00 via Android 返回一个空字典 |
6 Davic1 2020-04-01 08:37:54 +08:00 return {} 等价于 return dict() |
7 ji39 2020-04-01 08:53:59 +08:00 python 的字典和 js 的对象很像啊 |
8 pompeii 2020-04-01 09:10:13 +08:00 ![]() 就是一个空字典,应该是为了保持返回值类型、结构的一直型,即不管是执行了 if 后面的代码,还是执行了 else 里面的代码,这段代码的结果的类型和结构都是一样的,便于处理 |
![]() | 9 aaa5838769 2020-04-01 09:14:02 +08:00 返回字典 |
![]() | 10 RRRoger 2020-04-01 09:15:45 +08:00 ![]() 需要注意的是,如果你这里的 list={1},那么 list 就是一个 set,set 是无序集合 |
![]() | 11 Kilerd 2020-04-01 09:17:07 +08:00 有一说一,list={} 就很离谱 |
12 arerec 2020-04-01 09:20:23 +08:00 u1s1,list={} 代码里下毒 |
![]() | 13 oahebky 2020-04-01 09:28:45 +08:00 ![]() 一般是一两年新手这么写。 返回空的东西就直接 return None 。或者 return None 也不写(默认行为) 调用函数的地方对返回值直接 if ret: ... 判断就可以。 这样才是灵活使用动态类型。 如果确定要期望这个函数返回一个字典。那么原代码发生 return {} 的 case 就应该抛出异常。 |
![]() | 14 xiri 2020-04-01 09:32:57 +08:00 via Android list={}??? 想一下这样会发生什么,hahahahaha list={} set_test=(1,2,3) list_test=list(set_test) |
![]() | 16 ctro15547 2020-04-01 10:25:32 +08:00 ![]() 这样起名字容易误解。。 {} 是字典<type 'dict'> ,[]是列表<type 'list'>,xxx ={} 可以看成创建了一个 xxx 空的字典对象,然后可以 xxx[‘test’] = ‘test’ 加内容 或者其他字典操作,return {} 然函数返回空字典,伪代码 xxx = 函数的 return {} 跟 xxx = {} 一样,这样可以给你判断一下函数返回了啥 |
![]() | 17 no1xsyzy 2020-04-01 10:30:48 +08:00 ![]() @oahebky #13 我觉得如果不把 None 写进函数类型注记里,包括用 Optional 隐含 None,那么不要 return None 而是直接 return ;反之,如果函数类型注记里有 None,就算是 Union[..., None] 这种,也是写 return None 而不是 return 。如果某函数既 Optional 又 Union[..., None],那么我觉得需要明晰此函数的行为并清理注记。 相对地,如果返回值期望是 None,通常还是采用 if ret is None 来判断,一是 Python 有太多 Falsy 值,二来判断效率高(直接比较对象 id ),三来这样就不可能被 __bool__ (意外)下毒(比如 def __bool__(self): sys.exit() )。 不过 return {},确实通常比较少见,通常出现空字典也是尝试组装返回值时没有插入任何值导致的结果。不过可能出现在某些算法的短路里面,比如递归的初始条件。 def comb(keys, values): ____if keys and values: ________return {key[0]: value[0], **comb(keys[1:], values[1:])} ____else: ________return {} |
18 vanityfairn 2020-04-01 11:16:30 +08:00 list={},hhhh |
20 iuyoy 2020-04-01 11:43:28 +08:00 ![]() {} 和 {key:value} 是 dict,而{element}是 set 即 {1,2,3}是 set 。至于 list = {},一般情况下不要改写 python 内置变量。 |
![]() | 21 loading 2020-04-01 12:18:52 +08:00 via Android 我看了上面代码下毒的各位大佬深感: 动态一时爽 |
22 Thatscode99 OP 谢谢大佬们的分享 |
![]() | 23 black11black 2020-04-03 18:09:08 +08:00 空{}默认是 dict(),不建议这么使用,如同我建议写 list()一样,这会让你在使用字典和集合的时候产生混淆 |
24 Thatscode99 OP @black11black 谢谢指导 |