Python如何获取列表内指定元组的首元素与末元素
问题说明
你当前代码的循环逻辑是直接遍历(a,b,c)这个包含三个容器的元组,每次追加到r里的是完整的元组、列表对象,最终r的结构是[(1, 5), (4, 7), ['a']],所以直接取r[0]、r[1]拿到的是完整元组,不是元组内的单个元素。
取值方案
根据你的需求有两种实现方式:
方案1:不修改现有r的结构,直接嵌套索引取值
Python支持嵌套下标索引,你可以在拿到容器对象后,继续加索引取内部元素:
- 元组a是
r[0],它的第一个元素索引为0,用r[0][0]就能拿到值1 - 元组b是
r[1],序列的最后一个元素可以用索引-1快速定位,用r[1][-1]就能拿到值7
完整可运行代码:
a=1,5 b=4,7 c=['a'] r=[] for i in (a,b,c): if i not in r: r.append(i) # 提取目标值 a_first = r[0][0] b_last = r[1][-1] print(a_first) # 输出1 print(b_last) # 输出7
方案2:修改遍历逻辑,把单个不重复元素存入r
如果你最初的需求是把三个容器里的所有不重复单个元素平铺存入r,而不是存整个容器,可以加一层嵌套循环遍历每个容器内的元素,修改后r的结构是[1,5,4,7,'a'],直接按下标就能取到目标值:
a=1,5 b=4,7 c=['a'] r=[] for container in (a,b,c): for item in container: if item not in r: r.append(item) print(r) # 输出 [1, 5, 4, 7, 'a'] a_first = r[0] # 直接取到1 b_last = r[3] # 直接取到7
内容的提问来源于stack exchange,提问作者Hasan
相关产品推荐
相关产品推荐

