
# 伪数据。从 excel 返回内容,字典形式,表名是 key,内容是 value 。内容里每行一个 json 。 data = read_excel(a) excel 的内容是 [ [表 1 的各行 {1a:1,1b:2,1c:3,...}, {1a2:1,1b2:2,1c2:3,...}, ... ], [表 2 的各行], ..., [表 N 的各行] ] 也就是一个 2 层的数组 现在想获取的是,把第二层都拼成一个数组。也就是类似 itertools.chain(**data) 或者 new = [] for sheet in data: new += sheet 还有什么写法比较好?
1 airdge 2020 年 10 月 22 日 sum(data.values()) |
2 EggtartZ 2020 年 10 月 22 日 意思是要把一个列表的字典合并成一个字典? |
3 cryingsky 2020 年 10 月 22 日 flatten |
4 hmdsw 2020 年 10 月 22 日 pandas |
5 TimePPT PRO 字典粗暴合并如果存在两个字典有一样的 key 会丢数据吧,除非合并后同 key 的 value 合并成列表之类的。那这样还是两层。 |
6 sudoy 2020 年 10 月 22 日 ``` >>> x = {'a': 1, 'b': 2} >>> y = {'b': 3, 'c': 4} >>> z = {**x, **y} >>> z {'c': 4, 'a': 1, 'b': 3} ``` |
7 iblislsy 2020 年 10 月 22 日 sum([[1,2,3],[3,4,5]],[]) 这题完结 |
8 JCZ2MkKb5S8ZX9pq OP @iblislsy 原来 sum 还有第二个参数,一直没这么用过。 |
9 JCZ2MkKb5S8ZX9pq OP @iblislsy 如果不加第二个参数,会报类型错误,这个怎么理解? 我本来感觉,它是把第一个参数的 list[0] 作为初始值,然后 list[0]+list[1]+...+list[n]的。但好像一定要带上第二个 start 参数,定义一个空列表? |
10 BBCCBB 2020 年 10 月 22 日 sum 的第二个参数默认为 0,, 不指定的话就是 0, 所以类型不匹配. |
11 wuwukai007 2020 年 10 月 22 日 via Android list(chain(*youlist)) from itertools import chain |
12 kaitolucifer 2020 年 10 月 22 日 via iPhone The issue of quadratic performance of sum(sequences, null_seq) is known, which is why the doc says that sum() is for numbers and recommends .join for strings and itertools.chain for other sequences. 上面那个 sum trick 貌似很慢? |
13 owtotwo 2020 年 10 月 22 日 itertools.chain.from_iterable 应该可以? |
14 lithbitren 2020 年 10 月 22 日 印象中测过 chain 最快,sum 次之,循环最慢 |
15 billgreen1 2020 年 10 月 23 日 建议考虑一下 pandas |