第二章 列表和元组 I
2.1 序列概述
数据结构是以某种方式(如通过编号)组合起来的数据元素(如数、字符乃至其他数据结构)集合
元组是特殊的序列,列表和元组的主要不同在于,列表是可以修改的,而元组不可以。
几乎在所有情况下都可使用列表来代替元组。一种例外情况是将元组用作字典键。
序列可以包含其他序列
序列在处理一系列的值的时候很有用
代码:
edward = ['Edward Gumby', 42]
john = ['John Smith', 50]
database = [edward, john]
print(database)
输出:
[['Edward Gumby', 42], ['John Smith', 50]]
容器基本上就是可包含其他对象的对象。
两种主要的容器是序列(如列表和元组)和映射(如字典)。
在序列中,每个元素都有编号,
而在映射中,每个元素都有名称(也叫键)。
通用的序列操作
有几种操作适用于所有序列,包括索引、切片、相加、相乘和成员资格检查。
另外,Python还提供了一些内置函数
索引
序列元素都有编号,从0开始递增
代码:
greeting = 'Hello'
print(greeting[0])
输出:
H
当你使用负数索引时,Python将从右(即从最后一个元素)开始往左数,因此1是最后一个元素的位置
代码:
greeting = 'Hello'
print(greeting[-1])
输出:
0
对于字符串字面量(以及其他的序列字面量),可直接对其执行索引操作,无需先将其赋给变量
代码:
print('Hello[1]')
输出:
e
习题: 将以数指定年、月、日的日期打印出来
点击查看代码
#这样的list是不正确的,需要整理城一整个:
# 这里的"th"*17是"ththth..." 而["th"]*17是"th",th",th",th"...
# dayList = ["st","nd","rd","th"*17,"st","nd","rd","th"*7,"st"]
# 这样的写法不好
代码:
dayList = ["st"]+["nd"]+["rd"]+["th"] * 17+["st"]+["nd"]+["rd"]+["th"]*7+["st"]
# dayList = ["st","nd","rd"] + 17 *["th"] + ["st","nd","rd"] + 7*["th"]+["st"]
year = input("Year:")
month = input("Month(1-12):")
day = input("Day(1-31):")
print(dayList)
print(monthList[int(month)-1] + " " + day + dayList[int(day)-1] + "," + year)
输入:
2005 8 15
输出:
August 15th, 2005