如何访问列表的子元素?如何提取单词列表中每个单词的字母生成列表?
嘿,我来帮你搞定这两个Python列表相关的问题!
一、如何访问列表的子元素?
在Python里,列表的元素主要通过索引和切片两种方式访问:
通过索引访问单个元素:
列表的索引从0开始计数(第一个元素对应索引0),也支持负索引(从末尾往前数,-1代表最后一个元素)。举个例子:foods = ["apple", "banana", "cherry"] # 访问第一个元素 print(foods[0]) # 输出: apple # 访问最后一个元素 print(foods[-1]) # 输出: cherry # 访问第二个元素 print(foods[1]) # 输出: banana通过切片访问多个元素:
切片的格式是列表[起始索引:结束索引:步长],其中结束索引对应的元素不会被包含进来。比如:foods = ["apple", "banana", "cherry", "date", "elderberry"] # 获取第2到第4个元素(索引1到3) print(foods[1:4]) # 输出: ['banana', 'cherry', 'date'] # 获取前3个元素 print(foods[:3]) # 输出: ['apple', 'banana', 'cherry'] # 获取从第3个元素到末尾的所有元素 print(foods[2:]) # 输出: ['cherry', 'date', 'elderberry'] # 倒序获取所有元素 print(foods[::-1]) # 输出: ['elderberry', 'date', 'cherry', 'banana', 'apple']
二、提取每个单词的单个字母生成新列表
针对由单词组成的列表,分两种常见需求来实现:
需求1:把所有单词的字母合并成一个一维列表
可以用嵌套的列表推导式,遍历每个单词再遍历每个字母:
foods = ["apple", "banana", "cherry"] all_letters = [char for word in foods for char in word] print(all_letters) # 输出: ['a', 'p', 'p', 'l', 'e', 'b', 'a', 'n', 'a', 'n', 'a', 'c', 'h', 'e', 'r', 'r', 'y']
需求2:每个单词的字母作为子列表,形成二维列表
这种情况可以用列表推导式,或者更简洁的map函数:
foods = ["apple", "banana", "cherry"] # 方法1:列表推导式 word_letters = [[char for char in word] for word in foods] # 方法2:map函数(将每个单词转成列表) word_letters = list(map(list, foods)) print(word_letters) # 输出: [['a', 'p', 'p', 'l', 'e'], ['b', 'a', 'n', 'a', 'n', 'a'], ['c', 'h', 'e', 'r', 'r', 'y']]
内容的提问来源于stack exchange,提问作者Ira
相关产品推荐
相关产品推荐

