第2章 列表和元组

2.1 序列概述
列表可修改,元组不可修改。

>>> edward = ['Edward Gumby',42]
>>> john = ['John Smith',50]
>>> database = [edward,john]
>>> database
[['Edward Gumby', 42], ['John Smith', 50]]
>>> 

2.2 通用的序列操作

2.2.1 索引

#  将以数指定年、月、日的日期打印出来
months = [
    'Jan',
    'Feb',
    'March',
    'April',
    'May',
    'June',
    'July',
    'August',
    'Sep',
    'Oct',
    'Nov',
    'Dec'
    ]
# 一个列表,其中包含数1~31对应的结尾
endings = ['st','nd','rd'] + 17 * ['th'] \
          + ['st','nd','rd'] + 7 * ['th'] \
          + ['st']
year = input('Year: ')
month = input('Month(1-12): ')
day = input('Day(1-31): ')
month_number = int(month)
day_number = int(day)
month_name = months[month_number-1]
ordinal = day + endings[day_number-1]
print(month_name + ' ' + ordinal + ', ' + year)

2.2.2 切片

#从url中提取域名
url = input('Please enter the URL: ')
domain = url[11:-4]
print("Domain name: " + domain)

2.2.3 序列相加

>>> [1,2,3] + [4,5,6]
[1, 2, 3, 4, 5, 6]
>>> 'Hello,' + "world!"
'Hello,world!'
>>> 

2.2.4 乘法

>>> 'python' * 5
'pythonpythonpythonpythonpython'
>>> [42] * 10
[42, 42, 42, 42, 42, 42, 42, 42, 42, 42]
>>> 
#在位于屏幕中央且宽度合适的方框内打印一个句子

sentence = input("Sentence: ")
screen_width = 80
text_width = len(sentence)
box_width = text_width + 6
left_margin = (screen_width - box_width) // 2

print()
print(' ' * left_margin + '+' + '-' * (box_width-2) + '+')
print(' ' * left_margin + '|  ' + ' ' * text_width + '  |')
print(' ' * left_margin + '|  ' +  sentence + '  |' )
print(' ' * left_margin + '|  ' + ' ' * text_width + '  |')
print(' ' * left_margin + '+' + '-' * (box_width-2) + '+')
print()

2.2.5 成员资格

#检查用户名和PIN码
database = [
    ['albert','1234'],
    ['abcd','2345']
]
username = input('User name: ')
pin = input('PIN code: ')

if[username,pin] in database : print('Access granted')

长度、最小值和最大值

>>> numbers = [100,34,678]
>>> len(numbers)
3
>>> max(numbers)
678
>>> min(numbers)
34
>>> 

2.3 列表:Python的主力
列表是可变的,即可修改其内容。

2.3.1 函数list

>>> list('Hello')
['H', 'e', 'l', 'l', 'o']
>>> 

2.3.2 基本的列表操作

  1. 修改列表:给元素赋值
>>> x = [1,1,1]
>>> x[1] = 2
>>> x
[1, 2, 1]
>>> 
  1. 删除元素
    使用del语句
>>> names = ['a','b','c']
>>> del names[1]
>>> names
['a', 'c']
>>> 

3 给切片赋值

>>> names = ['a','b','c']
>>> del names[1]
>>> names
['a', 'c']
>>> name = list('Perl')
>>> name
['P', 'e', 'r', 'l']
>>> name[2:] = list('ar')
>>> name
['P', 'e', 'a', 'r']
>>> 

2.3.3 列表方法
1.append

>>> lst = [1,2,3]
>>> lst.append(4)
>>> lst
[1, 2, 3, 4]
>>> 

2.clear

>>> list = [1,2,3]
>>> list.clear()
>>> list
[]
>>> 

3,copy

>>> a = [1,2,3]
>>> b = a
>>> b[1] = 4
>>> a
[1, 4, 3]
>>> 
>>> a = [1,2,3]
>>> b = a.copy()
>>> b[1] = 4
>>> a
[1, 2, 3]
>>> 
>>> 

4 count

>>> x = [1,1,2]
>>> x.count(1)
2
>>> 

5 extend

>>> a = [1,2]
>>> b = [3,4]
>>> a.extend(b)
>>> a
[1, 2, 3, 4]
>>> 

6 index

>>> a = [1,2,3,4]
>>> a.index(3)
2
>>> 

7 insert

>>> a
[1, 2, 3, 4]
>>> a.insert(2,'four')
>>> a
[1, 2, 'four', 3, 4]
>>> 

8 pop

>>> a
[1, 2, 'four', 3, 4]
>>> a.pop()
4
>>> a
[1, 2, 'four', 3]
>>>

9 remove

>>> a
[1, 2, 'four', 3]
>>> a.remove('four')
>>> a
[1, 2, 3]
>>> 

10 reverse

>>> a
[1, 2, 3]
>>> a.reverse()
>>> a
[3, 2, 1]
>>> 

11 sort

>>> a = [4,6,2,1,7,9]
>>> a.sort()
>>> a
[1, 2, 4, 6, 7, 9]
>>> 

12 高级排序

>>> x = ['aardvark','abalone','acme','add','aerate']
>>> x.sort(key=len)
>>> x
['add', 'acme', 'aerate', 'abalone', 'aardvark']
>>> x.sort(key=len,reverse=True)
>>> x
['aardvark', 'abalone', 'aerate', 'acme', 'add']
>>> 

2.4 元组:不可修改的序列
元组不能修改。
元组语法很简单,只要将一些值用逗号分隔,就能自动创建一个元组,另外,元组还可用圆括号括起。

>>> 1,2,3
(1, 2, 3)
>>> (1,2,3)
(1, 2, 3)
>>> 

2.5 小结

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值