使用列表理解打印出一个包含长度为 4 的单词的列表

Use list comprehension to print out a list with words of length 4

我正在尝试编写一个列表理解,它使用 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)]

有什么想法吗?

您可以使用此列表 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] ----- 在 moinmoinbongbong
  • 的情况下失败

  1. len() function return 你的字符串的长度。所以使用 len 函数的列表压缩将给出所有项目长度的列表。

例如

>>> List1 = ['jacob','batman','mozarella']
>>> [len(i) for i in List1]
[5, 6, 9]
>>> 
  1. 使用slice() 列表方法从字符串中获取子字符串。 more info

例如

>>> a = "abcdef"
>>> a[:4]
'abcd'

>>> [i[:4] for i in List1]
['jaco', 'batm', 'moza']

Python初学者

  1. 定义List1.
  2. 定义为空List2
  3. 使用 for 循环迭代 List1
  4. 中的每个项目
  5. 使用列表 append() 方法将项目添加到列表中 slice() 方法。
  6. 使用打印查看结果。

示例代码:

>>> List1 = ['jacob','batman','mozarella']
>>> List2 = []
>>> for i in List1:
...     List2.append(i[:4])
... 
>>> print List2
['jaco', 'batm', 'moza']
>>> 

还有一种方法,现在使用 map 函数:

List1 = ['jacob','batman','mozarella']
List2 = map(lambda x: x[:4], List1)