【Python学习笔记】-列表、元组

date:2017-03-25

拾遗

random(a,b) 生成a,b之间之的一个随机数,包括a和b
range(a,b)生成一个a,b之间的序列,包括a,但不包括b
None类型:s = None  type(s)  --> <class 'NoneType'>   判断时可用 if i is None:

变量交换:a,b=b,a  比较友好的一点是不用引入中间变量了
id()函数: 查看一个对象在内存中的位置,可根据此判断两个对象是否相等
help()函数: 获取一个函数或模块的详细说明
dir()函数:  获取一个函数或模块内的操作方法,输出的是方法列表

格式化字符串

三种格式化输出的方法:

name=Yort
age=18
# 第一种格式化输出方法
print('my name is %s, I am %2d years old.' %(name,age)) #%2d表示2个占位符

# 第二种格式化输出方法
print('my name is {my_name}, I am {my_age} years old.'.format(my_name=name,my_age=age))

# 第三种格式化输出方法
print('my name is {0}, I am {1} years old.'.format(name,age))

其中:
{name:<10}表示10个占位符,左对齐
{name:>10}表示10个占位符,右对齐
{name:^10}表示10个占位符,居中对齐

列表

列表特点

  • 有序
  • 编号、可通过编号访问
  • 可遍历
  • 可追加/插入
  • 可删除/弹出
  • 可修改
  • 长度不定

如果有这样的需求就可以用列表来完成

定义

nums=[1,2,3,4,5,6,7,8]

  • 使用中括号包含
  • 每个元素之间使用逗号分隔
  • 可包含任意数据类型(列表,元组,字典,数值,字符串,布尔等)

访问

因为列表是有序的数据集,可以通过列表名[索引]的方式访问列表中的元素
索引编号:
从左向右: 0,1,2,3…n-1
从右向左:-1,-2,-3…-n
其中,访问的列表必须要存在,否则会报错

修改

通过直接给 列表名[索引] 修改对应索引位置的值
修改元素的索引必须存在,否则报错

列表的遍历

使用for循环

nums=[1,2,3,4,5,6,7,8]
for i in nums:
    print(i)

* 序列都可以进行的操作包括索引,切片,加,乘,检查成员。*

与字符串的索引一样,列表索引从0开始。列表可以进行截取、组合等。

列表可以实现增删改查、四则运算,还有一些内置的方法

删除列表中的元素

可以使用 del 语句来删除列表的的元素,如下实例:

#!/usr/bin/python3

list = ['Google', 'Runoob', 1997, 2000]

print (list)
del list[2]
print ("删除第三个元素 : ", list)

增加列表中的值

append()方法来添加列表项

#!/usr/bin/python3

list1 = ['Google', 'Runoob', 'Taobao']
list1.append('Baidu')
print ("更新后的列表 : ", list1)

列表的四则运算

[1,2,3] + [4,5,6]
[1,2] * 3

* 列表对 +* 的操作符与字符串相似。+号用于组合列表,* 号用于重复列表。 *

列表的切片及应用

list[start : end : step]
list[::step]
list[start:end]
list[:end]
list[start:]
list[:]

列表的切片的作用
引用、复制、反转list、获取偶数组成的list、获取奇数组成的list
通过切片进行list的增删改等

列表的函数&方法

Python包含以下函数:

序号函数说明
1len(list)列表元素个数
2max(list)返回列表元素最大值
3min(list)返回列表元素最小值
4list(seq)将元组转换为列表

Python包含以下方法:

序号函数说明
1list.append(obj)在列表末尾添加新的对象
2list.count(obj)统计某个元素在列表中出现的次数
3list.extend(seq)在列表末尾一次性追加另一个序列中的多个值(用新列表扩展原来的列表)
4list.index(obj)从列表中找出某个值第一个匹配项的索引位置,若无,则报错
5list.insert(index, obj)将对象插入列表
6list.pop(obj=list[-1])移除列表中的一个元素(默认最后一个元素),并且返回该元素的值
7list.remove(obj))移除列表中某个值的第一个匹配项
8list.reverse()反向列表中元素
9list.sort([func])对原列表进行排序
10list.clear()清空列表
11list.copy()复制列表

列表实现队列和栈的原理

队列

先进先出 list.append() + list.pop(0)

先进后出 list.append() + list.pop()

元组

元组与列表的区别与联系

  • 元组和列表十分相近,不过元组里的元素是不可变的。
  • 元组使用小括号(),列表使用方括号[]
  • 元组创建时使用逗号隔开即可
  • 可以包含任意元素
  • 如果元组只有一个元素时,后面的逗号不可省略

访问元组时可通过元组名[索引]的方式
访问的元组数据不存在则报错

元组的不可变性

>>> nums=(1,2,[5,6])
>>> nums
(1, 2, [5, 6])

元组的遍历

元组和列表一样,是一个可迭代的对象

t = (1,2,3,4,5)
for i in t:
    print(t)

元组的类型转换

元组可通过tuple()函数将其它数据类型转换为元组

>>> tuple('abcdef')
('a', 'b', 'c', 'd', 'e', 'f')
>>> tuple([1,2,3,4,5])
(1,2,3,4,5)
>>> tuple(range(10))
(0,1,2,3,4,5,6,7,8,9)

元组的切片

tuple[start:end:step]
tuple [::step]
tuple[start:end]
tuple[:end]
tuple [start:]
tuple[:]

元组的四则运算

元组和列表的大部分特性都是相同的,四则运算也是只支持加(+)、乘(*)

>>> (1,2,3) + (4,5,6)
(1,2,3,4,5,6)
>>> (1,2,3) * 3
(1,2,3,1,2,3,1,2,3)

元组的常见操作

nums = (1,2,3,4,5)
# 获取元素数量
len(nums)

# 获取tuple中最大值和最小值
max(nums)
min(nums)

# 判断元素是否存在tuple中
>>> 1 in nums
True
>>> 6 in nums
False

元组函数与方法

count 计算tuple中存在相同元素的数量
index 获取元素在tuple中的位置

>>> nums
(1, 2, 1, 1, 5)
>>> nums.count(1)
3
>>> nums.index(2)
1
>>> nums[2].append(7)
>>> nums
(1, 2, [5, 6, 7])

为什么元组里的数据改变了?
元组里的值是不可变的,对于list等复杂数据类型的为引用方式存储数据类型的地址,其地址不可变,但内部数据可变

元组的用途

主要是用于一些不想被修改的变量,例如,月,日,周,一些公式常量,或函数参数传递时不被修改等

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值