设为首页 加入收藏

TOP

Python基础学习 -- 列表与元组(一)
2017-09-30 17:22:26 】 浏览:5254
Tags:Python 基础 学习 元组

 

返回到Python知识体系

 

本节学习目的:

       掌握数据结构中的列表和元组

应用场景:

       编程 = 算法 + 数据结构

       数据结构: 通过某种方式(例如对元素进行编号)组织在一起的数据元素的集合,这些元素可以是数字或者字符,或者其他数据结构.

       容器: 序列,映射,集合是三种比较常见的数据结构

       序列: 每个元素都有一个编号,也叫做索引

       映射: 每个元素都有一个名字,称为键值对

       集合: 内部元素都是不重复的

联系本文作者交流或者索取相关代码及软件请加入QQ群:小马哥的技术分享 413939157.

(一)   序列概览

内建序列种类

列表和元组区别

列表和元组的应用场景

1,使用元组作为字典的键,因为键不可修改,所以就不能使用列表

2,需要操作一组数值的时候,序列很好用

序列里面也可以包含其他序列

(二)   序列通用操作

2.1   索引

序列的特点就每个元素都有自己位置的编号,并且编号是在0开始的,用于找到某个位置上的元素.

正号索引: 开头第一个元素,索引为0开始

负号索引: -1代表倒数第一个元素,-2代表倒数第2个元素,依次类推. 

实例2.1.1

greeting = 'hello world'
print(greeting[0])

print(greeting[-1]) 

案例2.1.2
接收控制台输入年月日,打印年月日的英文格式.
'''
1,
输入年月日
    定义年月日三个变量分别接收输入
    定义两个序列分别存储对应的英文月日
2,格式化: 怎样对输入的月数字,转变为英文-->索引
'''
year = input("请输入年: ")

month = input("请输入月份(1-12): ")
day = input("请输入日期(1-31): ")
e_month = ['January','February','March','April','May','June','July','August','September','October','November','December']
e_day = ['st','nd','rd']+17*['th']+['st','nd','rd']+7*['th']+['st']
e_date = e_month[int(month)-1]+' '+e_day[int(day)-1]+' '+year
print(e_date)

 

2.2   分片

应用场景: 索引仅仅是取一个元素,如果要一次取一定范围内的多个元素呢?

使用方法: 冒号分割的两个索引表示边界范围,[开始索引: 结束索引]  <-注意不包括结束索引位置上的元素

实例2.2.1 分片

greeting = 'hello world'   #字符串长度是11
print(greeting[0:1])

print(greeting[0:11])

问题: 如果对分片修改会修改原字符串吗?

实例2.2.2 访问最后面n个元素

numbers = [1,2,3,4,5,6,7,8,9,10]
print(numbers[7:11])
# [8, 9, 10]   访问序列的后面三个元素
print(numbers[-1:-3])

# [] 没有数据的原因: 左边界索引一定要小于右边界索引
print(numbers[-3:-1])

# [8, 9] 只有两个元素的原因: 半开半闭区间,只包括左边界索引位置上的元素,不包括右边界索引位置上的元素
print(numbers[-3:])

# [8, 9, 10] 缺省写右边界索引: 这样范围就是默认取到最后一个元素
print(numbers[:-1])

# [1, 2, 3, 4, 5, 6, 7, 8, 9] 缺省写左边索引: 范围默认在第一个元素开始取
print(numbers[:])

# [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]  两个边界都缺省: 范围就是全部了

上面的分片都是挨个取元素,也就是步长为1,还可以设定步长取出元素

#默认步长的分片如上面,其实是缺省了一个参数
print(numbers[0:11:1])

#设定步长的分片
print(numbers[0:11:2])

 

 

2.3   相加/连接

本质: 连接操作

操作: 连接操作

print([1,2,3,4,5]+[6,7,8,9,10])
print('hello '+ 'world')
print([1,2,3,4,5]+'hello world')# 注意:这里是要抛错的,Python是强数据类型,也就是不会自动隐式转换数据类型,所以在这里只有两种相同数据类型的序列才能相加

 

2.4   乘法

其实在上面已有例子使用到了数列的乘法,本质上就是多个数列相加

  [1,2,3,4,5]*10

  ‘string’*10

实例2.4.1 创建一个10个元素的序列,但是里面上面都不存

   [none]*10

  none = [None]*10

  print(len(none))  #现在还学到长度,这是我猜的一个函数

 

 

2.5   成员资格

用于检查某个元素是否属于序列的成员,使用布尔运算符in

返回值成为布尔值: 条件为真返回True,为假返回False.

print(None in none)    #返回True
print('P' in  'python')  #返回False
 
# 查看用户名和密码是否存在
accout = [['mali','123'],['hadoop','java'],['spark','scala'],['ml','python'],['google','go']]

print(['mali','123'] in  accout)      #返回True
print('mali' in  accout)              #返回False 

2.6   长度,最小值,最大值

查看列表长度: len函数

min函数: 序列中最小的

首页 上一页 1 2 3 下一页 尾页 1/3/3
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇Python学习日记之忽略删除字符串.. 下一篇python爬煎蛋妹子图--20多行代码..

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目