参考: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的更多相关文章

  1. python学习第六讲,python中的数据类型,列表,元祖,字典,之列表使用与介绍

    目录 python学习第六讲,python中的数据类型,列表,元祖,字典,之列表使用与介绍. 二丶列表,其它语言称为数组 1.列表的定义,以及语法 2.列表的使用,以及常用方法. 3.列表的常用操作 ...

  2. Python学习第六课

    Python学习第六课 课前回顾 列表 创建 通过 [] :写在[]里,元素之间用逗号隔开 对应操作: 查 增 append insert 改(重新赋值) 删除(remove del pop(删除后会 ...

  3. Python学习笔记六

    Python课堂笔记六 常用模块已经可以在单位实际项目中使用,可以实现运维自动化.无需手工备份文件,数据库,拷贝,压缩. 常用模块 time模块 time.time time.localtime ti ...

  4. Python学习札记(三十六) 面向对象编程 Object Oriented Program 7 __slots__

    参考:slots NOTE 1.动态语言灵活绑定属性及方法. #!/usr/bin/env python3 class MyClass(object): def __init__(self): pas ...

  5. Python学习札记(十六) 高级特性2 迭代

    参考:迭代 Note 1.如果给定一个list或tuple,我们可以通过for循环来遍历这个list或tuple,这种遍历我们称为迭代(Iteration). 在C.C++.Java等语言中,for循 ...

  6. Python学习札记(二十六) 函数式编程7 修饰器

    修饰器 NOTE 1.函数对象有一个__name__属性,可以拿到函数的名字: #!/usr/bin/env python3 def now(): print('2017/2/19') def mai ...

  7. Python学习第六课——基本数据类型一之tuple and dict

    元组 (tuple) tu=(11,22,(123,456),[22,55],) # 一般定义元组的时候最后面加一个, # 元组不能被修改或者删除 v = tu[0] # 也可以根据索引取值 prin ...

  8. Python学习 :六个标准数据类型

    一.Numbers(数字类型) 数字类型主要分为两种—— 整数(Integer)与 浮点数(Float) 整数分为整型和长整型(在Python3中已经不再区分为整型与长整型,统一称为整型) 注意:数字 ...

  9. python学习(六)元组学习

    元组就是列表的一种,不过元组具有不可变性,而且是用圆括号访问的. 索引(下表索引或者键索引都是用的中括号) #!/usr/bin/python # 这节来学习元组, tuple, 基本上就像一个不可以 ...

随机推荐

  1. 并发编程 - 进程 - 1.开启子进程的两种方式/2.查看pid/3.Process对象的其他属性或方法/4.守护进程

    1.开启子进程的两种方式: # 方式1: from multiprocessing import Process import time def task(name): print('%s is ru ...

  2. c++主程这种事情,就是这样,看人先看人品,没人品,他的能力与你何关?

    这就是人品的重要性........ 接手别人的代码,说困难,也困难,说容易也容易 想把别人代码都读通,理顺,在改原代码BUG,在完美的加功能,那项目越大,越难 想把别人代码里面,加点坑,随便找个模块, ...

  3. Django-vue之emement-ui,绑定图片,页面挂载,路由跳转

    一  emement-ui使用 首先在终端下载安装:npm install element-ui 在vue项目中的main.js下: import ElementUI from 'element-ui ...

  4. 微信iOS版更新:可批量管理不常联系的朋友

    iOS版微信更新了v6.5.13版本,在新版本当中微信新增加了可批量管理不常联系的朋友功能,同时在群资料页可以查看最近收到的小程序,不过据网友爆料,腾讯在新的更新日志当中已经删除了“批量管理不常联系的 ...

  5. 使用CocoaPods管理第三方类库[效率]

    项目文件夹   加入第三方框架后的项目文件夹例如以下图 为什么要用Cocoapods?   iOS开发中经常使用的第三方库,比方: 1.FMDB:在使用SQLite是仅仅须要加入libsqlite3. ...

  6. NodeJS开发环境搭建

    原创作者: zero20121222 NodeJS开发环境搭建 1.安装NodeJS 1.编译环境 源代码编译器,通常 Unix/Linux平台都自带了C++的编译器(GCC/G++).如果没有,请通 ...

  7. Sails 框架学习资料

    一介布衣 http://yijiebuyi.com/so.html?k=sails sails modules 模型自带的方法介绍 2016-09-06  929  nodejs查看更多 node.j ...

  8. nginx的相关信息

    Nginx安装 nginx官网:https://nginx.org/ 安装准备:nginx依赖pcre库,要先安装pcre(nginx在rewrite时需要解析正则,PCRE是正则解析库) yum i ...

  9. Mysql binlog 安全删除(转载)

    简介: 如果你的 Mysql 搭建了主从同步 , 或者数据库开启了 log-bin 日志 , 那么随着时间的推移 , 你的数据库 data 目录下会产生大量的日志文件 shell > ll /u ...

  10. 使用stringstream格式化字符串

    stringstream所在头文件为<sstream> 一般有如下常用功能: 1.安全格式化字符串 stringstream常用来安全的格式化若干个字符串,数值到一个缓冲区, 而不用担心溢 ...