Python学习札记(六) Basic3 List和Tuple
参考:List Tuple
Note
List
List是Python中一个很吊的数据结构,类似C语言的数组。
1.定义:listname = [variable 1, v2, v3, ..., vn]
eg.
#!/usr/bin/env python3
classmates = ['Chen', 'Li', 'Wang']
print(classmates)
output:
sh-3.2# ./list1.py
['Chen', 'Li', 'Wang']
2.可以使用索引来访问list中的元素,即C语言数组中的a[i],通过索引i访问数组中第i个元素。
3.list可以使用负数作为索引,如索引-i,代表从list最后第i个元素。
eg.
i = int(input())
print(classmates[i])
output:
sh-3.2# ./list1.py
['Chen', 'Li', 'Wang']
0
Chen
sh-3.2# ./list1.py
['Chen', 'Li', 'Wang']
1
Li
sh-3.2# ./list1.py
['Chen', 'Li', 'Wang']
2
Wang
sh-3.2# ./list1.py
['Chen', 'Li', 'Wang']
-1
Wang
sh-3.2# ./list1.py
['Chen', 'Li', 'Wang']
-2
Li
sh-3.2# ./list1.py
['Chen', 'Li', 'Wang']
-3
Chen
当然,访问的索引不能越界。
4.List是可变长的有序表,可以往list的末尾加入元素,使用的是append()方法。
eg.
classmates.append('Zhang')
print(classmates)
output:
['Chen', 'Li', 'Wang', 'Zhang']
5.也可以把元素插入到指定位置,使用的是insert()方法。
eg.
classmates.insert(3, 'Chang') # 将元素'Chang'插入到list的第三个位置
print(classmates)
output:
['Chen', 'Li', 'Wang', 'Zhang']
['Chen', 'Li', 'Wang', 'Chang', 'Zhang']
6.删除末尾元素,使用的是pop()方法,删除索引为i的元素,使用的是pop(i)方法。
eg.
print(classmates)
classmates.pop() # 删除最后一个元素'Zhang'
print(classmates)
classmates.pop(1) # 删除第一个元素'Li'
print(classmates)
output:
['Chen', 'Li', 'Wang', 'Chang', 'Zhang']
['Chen', 'Li', 'Wang', 'Chang']
['Chen', 'Wang', 'Chang']
7.替换第i个元素:listname[i] = [替换元素]
eg.
print(classmate)
classmates[0] = 'Lingzhizzz'
print(classmates)
output:
['Chen', 'Li', 'Wang', 'Chang', 'Zhang']
['Lingzhizzz', 'Li', 'Wang', 'Chang', 'Zhang']
8.list元素类型也可以不一样
eg.
love = ['money', '952693358', 15, 32, 23, 9]
print(love)
output:
['money', '952693358', 15, 32, 23, 9]
9.用方法len()计算list的长度:
eg.
print(len(love))
output:
6
10.list可以相互嵌套,即list中的元素可以是list,类似C语言二维数组。
eg.
classmates.append(love)
print(classmates)
output:
['Lingzhizzz', 'Li', 'Wang', 'Chang', 'Zhang', ['money', '952693358', 15, 32, 23, 9]]
访问listA中的元素listB中的元素(真绕= =),比如访问classmates中love中的'952693358'元素,方法是:classmates[5][1]。
eg.
print(classmates[5][1])
print(classmate[5])
output:
15
['money', '952693358', 15, 32, 23, 9]
11.如果list中一个元素都没有,就是一个空的list,长度为0.
Tuple
Python中还有一种有序列表,叫做元组tuple,tuple和list非常类似,但是tuple一旦初始化就不能修改。
1.tuple中的元素不能修改。
2.tuple定义:tuplename = (v1, v2, v3, ..., vn)
eg.
#!/usr/bin/env python3
mates = (1, 'a', 'c')
print(mates)
output:
sh-3.2# ./tuple1.py
(1, 'a', 'c')
3.注意:当tuple只有一个元素的时候,需要在该元素后面加“,”!
原因:这是因为括号()既可以表示tuple,又可以表示数学公式中的小括号,这就产生了歧义,因此,Python规定,这种情况下,按小括号进行计算。
eg.
mates = (1) # 此时mates是整数
print(mates)
mates = (1,) # 此时mates是tuple
print(mates)
4.可变成的tuple,当tuple里面的元素有list的时候,list是可变长的。
tuple所谓的“不变”是说,tuple的每个元素,指向永远不变。即指向'a',就不能改成指向'b',指向一个list,就不能改成指向其他对象,但指向的这个list本身是可变的!
eg.
#!/usr/bin/env python3
mates = (1, 'a', 'c', ['Chen', 'Lingzhizzz'])
print(mates)
mates[3].append('Zhang')
print(mates)
mates[3].pop()
print(mates)
output:
sh-3.2# ./tuple1.py
(1, 'a', 'c', ['Chen', 'Lingzhizzz'])
(1, 'a', 'c', ['Chen', 'Lingzhizzz', 'Zhang'])
(1, 'a', 'c', ['Chen', 'Lingzhizzz'])
练习
请用索引取出下面list的指定元素:
# -*- coding: utf-8 -*-
L = [
['Apple', 'Google', 'Microsoft'],
['Java', 'Python', 'Ruby', 'PHP'],
['Adam', 'Bart', 'Lisa']
]
# 打印Apple:
print(?)
# 打印Python:
print(?)
# 打印Lisa:
print(?)
Ans:
#!/usr/bin/env python3
# -*- 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])
Output:
sh-3.2# ./list2.py
Apple
Python
Lisa
2017/1/25
Python学习札记(六) Basic3 List和Tuple的更多相关文章
- python学习第六讲,python中的数据类型,列表,元祖,字典,之列表使用与介绍
目录 python学习第六讲,python中的数据类型,列表,元祖,字典,之列表使用与介绍. 二丶列表,其它语言称为数组 1.列表的定义,以及语法 2.列表的使用,以及常用方法. 3.列表的常用操作 ...
- Python学习第六课
Python学习第六课 课前回顾 列表 创建 通过 [] :写在[]里,元素之间用逗号隔开 对应操作: 查 增 append insert 改(重新赋值) 删除(remove del pop(删除后会 ...
- Python学习笔记六
Python课堂笔记六 常用模块已经可以在单位实际项目中使用,可以实现运维自动化.无需手工备份文件,数据库,拷贝,压缩. 常用模块 time模块 time.time time.localtime ti ...
- Python学习札记(三十六) 面向对象编程 Object Oriented Program 7 __slots__
参考:slots NOTE 1.动态语言灵活绑定属性及方法. #!/usr/bin/env python3 class MyClass(object): def __init__(self): pas ...
- Python学习札记(十六) 高级特性2 迭代
参考:迭代 Note 1.如果给定一个list或tuple,我们可以通过for循环来遍历这个list或tuple,这种遍历我们称为迭代(Iteration). 在C.C++.Java等语言中,for循 ...
- Python学习札记(二十六) 函数式编程7 修饰器
修饰器 NOTE 1.函数对象有一个__name__属性,可以拿到函数的名字: #!/usr/bin/env python3 def now(): print('2017/2/19') def mai ...
- Python学习第六课——基本数据类型一之tuple and dict
元组 (tuple) tu=(11,22,(123,456),[22,55],) # 一般定义元组的时候最后面加一个, # 元组不能被修改或者删除 v = tu[0] # 也可以根据索引取值 prin ...
- Python学习 :六个标准数据类型
一.Numbers(数字类型) 数字类型主要分为两种—— 整数(Integer)与 浮点数(Float) 整数分为整型和长整型(在Python3中已经不再区分为整型与长整型,统一称为整型) 注意:数字 ...
- python学习(六)元组学习
元组就是列表的一种,不过元组具有不可变性,而且是用圆括号访问的. 索引(下表索引或者键索引都是用的中括号) #!/usr/bin/python # 这节来学习元组, tuple, 基本上就像一个不可以 ...
随机推荐
- VC2005 warning C4819 消除方法
一. Warning C4819:The file contains a character that can ot be represented in the current code page(9 ...
- K-modes聚类算法MATLAB
K-modes算法主要用于分类数据,如 国籍,性别等特征. 距离使用汉明距离,即有多少对应特征不同则距离为几. 中心点计算为,选择众数作为中心点. 主要功能: 随机初始化聚类中心,计算聚类. 选择每次 ...
- uchome client.php
uchome 主要使用了php的call_user_func()函数,在uc_clinet/client.php中,一般指向uc_api_mysql,而 uc_api_mysql()函数 则负责分发到 ...
- 抄送(Carbon Copy)
邮件中的抄送 举例,如果A发送邮件给B1,B2,B3,抄送给C1,C2,C3,密送给D1,D2,D3 那么: A知道自己将邮件发送给了B1,B2,B3,抄送给了C1,C2,C3,密送给了D1,D2,D ...
- sql server中使用xp_cmdshell
关键词:sql server开启高级配置,使用Bat,cmdshell 1.sql server中使用xp_cmdshell --允许配置高级选项 GO RECONFIGURE GO . --开启xp ...
- ALV tree标准DEMO
BCALV_TREE_01 ALV 树控制:构建层次树 BCALV_TREE_02 ALV 树控制:事件处理 BCALV_TREE_03 ALV 树控制:使用自己的上下文菜单 BCALV_TREE_0 ...
- Apache配置虚拟主机的三种方法(基于IP、端口、域名)
1 Apache虚拟主机的实现方式有3种. 基于IP的虚拟主机 基于端口的虚拟主机 基于域名的虚拟主机 2.1 启用虚拟主机的准备工作 2.1.1安装httpd [root@mail httpd]# ...
- 模块讲解----json模块(跨平台的序列化与反序列化)
一.json的特点 1.只能处理简单的可序列化的对象:(字典,列表,元祖) 2.json支持不同语言之间的数据交互:(python - go,python - java) 二.使用场景 1.玩 ...
- Vim 我用的python相关插件
1. pydoc.vim(https://github.com/vim-scripts/pydoc.vim) 查找python文档. 使用方法: :Pydoc <keyword> ...
- Log4net 自定义字段 写入Oracle 使用ODP.NET Managed驱动
一.环境说明: 开发工具:vs2010 ,数据库:oracle 11g ,版本:log4net的目前最新版本1.2.13.0 : Oracle.ManagedDataAccess.dll ...