我有一個列表的python列表,如下所示。我想把它壓平成一個單子。從python列表中刪除'u'
l = [u'[190215]']
我在努力。
l = [item for value in l for item in value]
原來的列表[u'[', u'1', u'9', u'0', u'2', u'1', u'5', u']']
如何從列表中刪除u
。
我有一個列表的python列表,如下所示。我想把它壓平成一個單子。從python列表中刪除'u'
l = [u'[190215]']
我在努力。
l = [item for value in l for item in value]
原來的列表[u'[', u'1', u'9', u'0', u'2', u'1', u'5', u']']
如何從列表中刪除u
。
在你現在的代碼,你迭代一個字符串,它代表名單,所以你得到的單個字符。
>>> from ast import literal_eval
>>> l = [u'[190215]']
>>> l = [item for value in l for item in value]
>>> l
[u'[', u'1', u'9', u'0', u'2', u'1', u'5', u']']
在我看來,要列出的內部字符串表示形式轉換,以平面化列表,所以在這裏你去:
>>> l = [u'[190215]']
>>> l = [item for value in l for item in literal_eval(value)]
>>> l
[190215]
以上將工作只有當所有的內部列表是字符串:
>>> l = [u'[190215]', u'[190216, 190217]']
>>> l = [item for value in l for item in literal_eval(value)]
>>> l
[190215, 190216, 190217]
>>> l = [u'[190215]', u'[190216, 190217]', [12, 12]]
>>> l = [item for value in l for item in literal_eval(value)]
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/lib/python2.7/ast.py", line 80, in literal_eval
return _convert(node_or_string)
File "/usr/lib/python2.7/ast.py", line 79, in _convert
raise ValueError('malformed string')
ValueError: malformed string
的u
指unicode
字符串應該是完全正常使用。 但是,如果你想unicode
轉換爲str
(這只是代表在Python 2平原字節),那麼你可以使用的字符編碼encode
它如utf-8
。
>>> items = [u'[190215]']
>>> [item.encode('utf-8') for item in items]
['[190215]']
您可以將您的Unicode轉換成普通字符串str
:
>>> list(str(l[0]))
['[', '1', '9', '0', '2', '1', '5', ']']
使用[str(item) for item in list]
例如
>>> li = [u'a', u'b', u'c', u'd']
>>> print li
[u'a', u'b', u'c', u'd']
>>> li_u_removed = [str(i) for i in li]
>>> print li_u_removed
['a', 'b', 'c', 'd']
在我的情況.... – Bhuro
'result1.append不工作([STR(i)用於i的行])' UnicodeEncodeError: 'ASCII' 編解碼器不能在56-59位置編碼字符:順序不在範圍內(128) – Bhuro
其中欲被轉換成正常的字符串 文件CSV原始數據>>結果'[U ' 「0000211504512150」',U ' 「NEW」',U ' 「27.95」',U' 「sdjfgjdshf」 ',u'「0」',u'「FALSE」',''''','''''','''','''',''FBR'',''FALSE'',u ''NOT_PUBLISHED'',u'「'']'..... like file csv >> result'[」0000211504512150「,」NEW「,」27.95「,」sdjfgjdshf「,」0「,」FALSE「 ,「」,「」,「adfgugfius708vs」,「FBR」,「FALSE」,「NOT_PUBLISHED」,「」] – Bhuro
輸出像L = [ '[190215]'] ?? –
'l'是一個單一的列表,由一個元素組成,該元素的類型爲'unicode'。這是一個看起來像'[190215]'的字符串,它不是一個列表,其元素是數字'190215'。你能準確地說出你期望的結果嗎? –