list和元组

list

list是列表,为一个有序的集合,可以随时删除或添加其中的元素,如下:classmates为一个list,可以用len显示list的长度:

1 >>> classmates=['Freezing','Gree','Alex']
2 >>> classmates
3 ['Freezing', 'Gree', 'Alex']
4 >>> len(classmates)
5 3

用索引访问list中每一个位置的元素,下标从[0]开始,最后一个元素为len()-1,若写为len(),会报下标越界的错误:

>>> classmates[0]
'Freezing'
>>> classmates[1]
'Gree'
>>> classmates[2]
'Alex'
>>> classmates[3]
Traceback (most recent call last):File "<stdin>", line 1, in <module>
IndexError: list index out of range

可以用[-1]下标来表示list中的最后一个元素:

>>> classmates[-1]
'Alex'

>>> classmates[-1]
'Alex'
>>> classmates[-2]
'Gree'
>>> classmates[-3]
'Freezing'
>>> classmates[-4]
Traceback (most recent call last):File "<stdin>", line 1, in <module>
IndexError: list index out of range

>>> classmates[len(classmates)-1]
'Alex'
>>> classmates[-len(classmates)]
'Freezing'

list中追加元素用append()方法:

>>> classmates.append('Test')
>>> classmates
['Freezing', 'Gree', 'Alex', 'Test']

insert()方法可以在list的指定位置插入元素,例如在第3个元素之前插入元素num3:

>>> classmates.insert(3,'num3')
>>> classmates
['Freezing', 'num2', 'Gree', 'num3', 'Alex', 'Test']

要删除list末尾的元素,用pop()方法:

>>> classmates.pop()
'Test'
>>> classmates
['Freezing', 'num2', 'Gree', 'num3', 'Alex']

删除list中指定位置的元素,采用pop(i),其中i表示元素位置:

>>> classmates.pop(0)
'Freezing'
>>> classmates
['num2', 'Gree', 'num3', 'Alex']

要把某个元素替换成别的元素,可以直接赋值给对应的索引位置:

>>> classmates[1]= 'freezing'
>>> classmates
['num2', 'freezing', 'num3', 'Alex']

list中的元素种类也可以不同:

>>> list=['freezing',123,3.5]
>>> list
['freezing', 123, 3.5]

list中的元素可以是另一个list:

>>> list=['num1','num2',['num3','num4'],'num5']
>>> list
['num1', 'num2', ['num3', 'num4'], 'num5']
>>> len(list)
4

>>> list[2][1]
'num4'

list可以为一个空的列表,长度为0:

>>> list=[]
>>> len(list)
0

 元组

元组也是一个列表,但是与list不同的是元组一旦定义,其元素内容不可变动,因此也没有append()、insert()等方法提供使用。

>>> classmates=('num1','num2','num3')
>>> classmates
('num1', 'num2', 'num3')

其获取元素的方法与list是一样的:

>>> classmates=('num1','num2','num3')
>>> classmates
('num1', 'num2', 'num3')
>>> classmates[0]
'num1'
>>> classmates[-1]
'num3'

tuple的元素不可变动,在定义tuple时,其元素就已经被确定:

>>> classmates=('num1','num2','num3')

若要定义一个空的tuple,则按照如下方式编写:

>>> tuple=()
>>> len(tuple)
0

tuple中的元素可以为一个list,其中list中的元素可以修改:

>>> tuple=(1,2,[3,4])
>>> tuple[2][0]=30
>>> tuple[2][1]=40
>>> tuple
(1, 2, [30, 40])

练习题

#练习
#请用索引取出下面list的指定元素:
# -*- coding: utf-8 -*-
L = [['Apple', 'Google', 'Microsoft'],['Java', 'Python', 'Ruby', 'PHP'],['Adam', 'Bart', 'Lisa']
]
# 打印Apple:
print(L[0][0])
# 打印Python:
print(L[1][1])
# 打印Lisa:
print(L[2][2])

转载于:https://www.cnblogs.com/freezing1115/p/8524607.html

Ptthon学习记录(八)-------list和元组相关推荐

  1. UE4 学习记录八 给场景中添加背景音乐和动画音效,运动加速效果

    这只是用来记录我学习UE4过程的,可能帮不到你,先说声抱歉.为了防止误导他人,请勿转载,请勿转载,请勿转载. 本文的主题是给场景中添加背景音乐和动画的音效.总章目录(https://blog.csdn ...

  2. Python学习记录(4)元组:戴了紧箍咒的列表

    一.元组的创建 元组不能修改元素 二.元组的特性 三.常用方法 四.命名元组 五.拓展:is和== 六.拓展:浅拷贝和深拷贝

  3. vue mianjs 引用css_vue 学习记录八——webpack中常见的配置项

    在web开发中,我们得使用到js(es6).css.html等技术,需要对资源文件管理,例如图片,同时还需要对性能.热加载等进行处理:这些功能都是可以在webpack中进行配置管理的,下面具体介绍说明 ...

  4. Dubbo学习记录(八) -- Spring整合Dubbo中@Reference注解解析原理

    Spring整合Dubbo中@Reference注解解析原理 @Reference: 可以用在属性或者方法, 意味着需要引用某个Dubbo服务, 那么Dubbo整合Spring后, 我很好奇怎么把这个 ...

  5. 【C语言进阶深度学习记录】三十八 C/C++语言中的函数声明与函数定义

    文章目录 1 函数的声明和定义 1.1 代码分析 2 总结 1 函数的声明和定义 声明的意义在于告诉编译器程序单元的存在.只是告诉编译器它存在但是不在声明这里定义,有可能在当前文件中的其他地方或者其他 ...

  6. 【C语言进阶深度学习记录】八 C语言中void的分析

    文章目录 1 void的意义 1.1 不存在void变量 1.2 C标准 1.3 void指针的意义 1.4 通过void* 实现memset函数 2 总结 1 void的意义 void修饰函数的参数 ...

  7. linux学习第八周总结

    linux学习第八周总结 本周学习了两个服务,DNS和ansible 由于这些服务很复杂,我也只能是到达刚了解或者是刚刚入门的程度,所以只说一些简单基本的东西,简单总结. 一.DNS服务 1.简介 域 ...

  8. 爬虫入门学习(八)模拟登录丁香园论坛爬取用户信息

    爬虫入门学习(八)实战大项目模拟登录丁香园爬取信息 1 目标 2 思路 3 主要的技术点 3.1 模拟登录 3.2 抓取用户个人主页 4 完整代码 5 项目后期拓展 1 目标 模拟登录丁香园,并抓取页 ...

  9. 《Two Dozen Short Lessons in Haskell》学习(八)- Function Types, Classes, and Polymorphism

    <Two Dozen Short Lessons in Haskell>(Copyright © 1995, 1996, 1997 by Rex Page,有人翻译为Haskell二十四学 ...

最新文章

  1. mysql5.7 skip ssl_MySQL 5.7 的SSL加密方法
  2. 独占一行 html_HTML基础-语义化标签
  3. ASP.NET MVC学习之(5):Html.ActionLink
  4. selenium禁止弹窗_python:使用带有selenium的firefox时禁用下载弹出窗口
  5. 为什么有了接口还要增加一层抽象类?
  6. Amazon S3 API
  7. SQL函数大全(转)
  8. LeetCode刷题(简单)笔记C++
  9. dev 居中_css的div垂直居中的方法,百分比div垂直居中
  10. APP测试面试题总结
  11. 如何让excel说话,vba的speak功能
  12. Windows设置电脑每天自动重启
  13. Unity一个默认占用C盘空间的小坑
  14. mobi转为html,MOBI to HTML
  15. c语言压缩存储,数据的压缩存储与解压缩算法实现(C语言)
  16. tomcat监控脚本(监控进程,测试接口,告警动作为发送邮件)
  17. 第四章 C语言输入输出_C语言数据输出大汇总以及轻量进阶
  18. iconfont字体图标线上环境加载偶尔乱码问题
  19. Spring Cloud升级之路 - Hoxton - 8. 修改实例级别的熔断为实例+方法级别
  20. 搜狗浏览器和360浏览器css布局注意事项

热门文章

  1. 检查单 2014-06-20-01
  2. 将会改变未来IT世界的十种编程语言
  3. poj 2352 Stars(线段树)
  4. C# 获取几种路径的方式
  5. Android2.2 API 中文文档系列(7) —— ImageButton
  6. Node - 异步IO和事件循环
  7. JVM NativeMemoryTracking 分析堆外内存泄露
  8. python requests 爬取数据
  9. Kafka实战-Flume到Kafka
  10. 开源博客QBlog开发者视频教程:模板机制加载原理解说(三)