對於規範的且巢狀維度較低的多維列表,python中有很多方法可以實現:
a=[[
1,2],[
3,4],[
5,6]]
print [j
for i
in li
for j
in i]
#orfrom itertools
import chain
print list(chain(*a))
#orimport itertools
a = [[
1,2,
3],[
4,5,
6], [
7], [
8,9]]
out = list(itertools.chain.from_iterable(a))
#ora=[[
1,2],[
3,4],[
5,6]]
t=[t.extend(i)
for i
in a]
print t
#ora=[[
1,2],[
3,4],[
5,6]]
print sum(a,)
#orreduce(
lambda x, y: x+ y, a)
對於複雜的多維巢狀列表就需要使用一些複雜的方法:
#遞迴的方法比較容易理解
defexpand_list
(nested_list):
for item
in nested_list:
if isinstance(item, (list, tuple)):
for sub_item
in expand_list(item):
yield sub_item
else:
yield item
#在stackoverflow看到大牛的列表生成式版本
func =
lambda x: [y
for l
in x
for y
in func(l)]
if type(x)
is list
else [x]
#生成式的方法還有很多,可以自行摸索
對於使用python2.x的童鞋,還可以使用flatten函式來做:
>>> d=[
1,2,
3,[4,
5],[
6,7,[
8,9]]]
>>>
from compiler.ast
import flatten
>>>flatten(a)
[1,
2, 3,
4, 5,
6,7,
8,9]
其實上邊列舉的方法僅僅是冰山一角,大海下的冰山就等這童鞋們自行去尋找挖掘了。
java 壓縮成gz檔案
public class gziputil catch filenotfoundexception e gzipoutputstream out null try catch ioexception e byte buf new byte 1024 int len 0 try in.close lo...
Python實現加密壓縮成RAR或ZIP檔案
博主在前兩篇博文分別介紹了加密rar檔案的解壓和加密zip檔案的解壓後面又開始嘗試了兩類檔案的加密壓縮,在查閱相關資料後,發現rarfile庫和zipfile庫都不支援加密壓縮,只能實現普通壓縮,因此另謀他路,發現可以呼叫cmd命令進行壓縮,下面將分別介紹rar和zip檔案的加密壓縮。呼叫壓縮成ra...
jar 解壓縮後重新壓縮成jar包。
cmd 在jar 解壓縮的目錄下 輸入 jar cvf0m name.jar 就能重新打包成jar。一.jar命令引數 jar命令格式 jar v m e 0 m i c 目錄 檔名.其中這四個引數必須選選其一。v f m e 0 m i 是可選引數,檔名也是必須的。c 建立乙個jar包 t 顯示j...