我正在尝试编写一个列表解析,使用List1创建长度为4的单词列表。
List1 = ['jacob','batman','mozarella']
wordList = [words for i in range(1)]
print(wordList)
这会打印wordList但是长度大于4的单词 我正在寻找打印出来的程序:
['jaco','batm','moza']
是List1中的相同单词,但长度为4
我尝试了这个并且没有用
wordList = [[len(4)] words for i in range(1)]
有什么想法吗?
答案 0 :(得分:11)
你可以使用这个列表comp
>>> List1 = ['jacob','batman','mozarella']
>>> [i[:4] for i in List1]
['jaco', 'batm', 'moza']
价:
i[:4]
是前4个字符的字符串的一部分其他方法(所有都有自己的缺点)
[re.sub(r'(?<=^.{4}).*', '', i) for i in List1]
[re.match(r'.{4}', i).group() for i in List1]
[''.join(i[j] for j in range(4)) for i in List1]
[i.replace(i[4:],'') for i in List1]
-----在moinmoin
或bongbong
答案 1 :(得分:4)
len()
函数返回您的字符串中的字符串长度。因此,使用len函数列出压缩将给出所有项目长度的列表。e.g。
>>> List1 = ['jacob','batman','mozarella']
>>> [len(i) for i in List1]
[5, 6, 9]
>>>
slice()
list方法从字符串中获取子字符串。 more info e.g。
>>> a = "abcdef"
>>> a[:4]
'abcd'
>>> [i[:4] for i in List1]
['jaco', 'batm', 'moza']
Python初学者
List1
。List2
for
循环来迭代List1
append()
方法,使用slice()
方法将项目添加到列表中。示例代码:
>>> List1 = ['jacob','batman','mozarella']
>>> List2 = []
>>> for i in List1:
... List2.append(i[:4])
...
>>> print List2
['jaco', 'batm', 'moza']
>>>
答案 2 :(得分:4)
另一种方法,现在使用地图功能:
List1 = ['jacob','batman','mozarella']
List2 = map(lambda x: x[:4], List1)