码迷,mamicode.com
首页 > 编程语言 > 详细

Python 列表和元组

时间:2017-05-22 17:47:55      阅读:185      评论:0      收藏:0      [点我收藏+]

标签:nbsp   连接   cto   raw   apr   log   不包含   区别   view   

1、数据结构:通过某种方式组织在一起的数据元素的集合

2、在Python中,最基本的数据结构是序列(sequence),最后一个元素标记为-1,倒数第二个元素为-2,第一个元素位于最开始,索引为0

3、Python包含6种内建的序列,最常用的两种类型:列表和元组.其他的内建序列类型有字符串、Unicode字符串、buffer对象和xrange对象

4、列表和元组的主要区别在于,列表可以修改,元组则不能

技术分享
months = [
    ‘January‘,
    ‘February‘,
    ‘March‘,
    ‘April‘,
    ‘May‘,
    ‘June‘,
    ‘July‘,
    ‘August‘,
    ‘September‘,
    ‘October‘,
    ‘November‘,
    ‘December‘
]
endings = [‘st‘,‘nd‘,‘rd‘] + 17*[‘th‘]        + [‘st‘,‘nd‘,‘rd‘] + 7*[‘th‘]        + [‘st‘]

year  = raw_input(‘Year: ‘)
month = raw_input(‘Month(1-12): ‘)
day   = raw_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
索引示例

5、使用分片操作来访问一定范围内的元素。分片通过冒号相隔两个索引.第一个索引的元素包含在分片内,而第二个则不包含在分片内

技术分享
numbers = [1,2,3,4,5,6,7,8,9,10]
print numbers[3:6]
# [4,5,6]
print  numbers[-3:]
# [8,9,10]

url = raw_input(‘Please enter the URL: ‘)
domain = url[11:-4]
print "Domain name: " + domain
# Please enter the URL: http://www.python.org
# Domain name: python
分片示例

6、进行分片的时候,还有一个隐式参数步长(step length),如果步长为负数,即从右到左提取

7、序列相加,两种相同类型的序列才能进行连接操作

8、乘法: 用数字x乘以一个序列生成新的序列,在新的序列中,原来的序列将被重复x次

技术分享
# 创建一个占有十个元素空间
sequence = [None] * 10
print sequence
# [None, None, None, None, None, None, None, None, None, None]

nums = [1,2,3]
print nums*4
# [1, 2, 3, 1, 2, 3, 1, 2, 3, 1, 2, 3]
乘法示例

9、为了检查一个值是否在序列中,使用in运算符.然后返回相应的值:条件为真返回Ture,条件为假返回False

技术分享
permissions = ‘rw‘
print ‘r‘ in permissions
print ‘e‘ in permissions
# True
# False

users = [‘mlh‘, ‘foo‘, ‘bar‘]
you_name_is_exist = raw_input(‘Enter your user name: ‘) in users
print you_name_is_exist
# Enter your user name: 45
# False

subject = ‘$$$ Get rich now!! $$$‘
print ‘$$‘ in subject
# True

# 检查用户名和PIN码
database = [
    [‘albert‘, ‘1234‘],
    [‘dilbert‘,‘4242‘],
    [‘smith‘,  ‘7524‘],
    [‘jones‘,  ‘9843‘]
]

username = raw_input(‘User Name: ‘)
pin = raw_input(‘PIN code: ‘)

if [username, pin] in database: print ‘Access granted‘
# User Name: smith
# PIN code: 7524
# Access granted
View Code

10、内建函数len、min和max。len函数返回序列中包含元素的数量,min函数和max函数则分别返回序列中最大和最小的元素

技术分享
# 元素赋值
x = [1,1,1]
x[1] = 2
print x
# [1, 2, 1]

# 删除元素
del x[2]
print x
# [1, 2]

# 分片赋值
name = list(‘Perl‘)
name[2:] = list(‘ar‘)
print name
# [‘P‘, ‘e‘, ‘a‘, ‘r‘]
# 分片赋值是将原序列不等长的序列分片替换

numbers = [1,5,6]
numbers[2:3] = [2,3,4]
print numbers
# [1, 5, 2, 3, 4]

# 利用分片赋值删除元素
nums = [1,2,3,4,5]
nums[1:4] = []
print nums
# [1, 5]
分片赋值

11、列表方法

  调用: 对象.方法(参数)

  append方法用于在列表末尾追加新的对象(直接修改原来的列表)

  count方法统计某个元素在列表中出现的次数

  extend方法可以在列表的末尾一次性追加另一个序列中的值

  index方法用于从列表中找出某个值第一个匹配项的索引位置

  insert方法用于将对象插入到列表中

  pop方法会移除列表中的一个元素(默认是最后一个),并返回该元素的值.pop方法是唯一一个既能修改列表又返回元素值(处理None)的列表方法

  remove方法用于移除列表中某个值的第一个匹配项

  reverse方法将列表中的元素反向存放

  sort方法用于在原位置对列表进行排序.sorted会返回已排序的列表副本

技术分享
aname = [1,2,3]
aname.append(4)
print aname
# [1, 2, 3, 4]

print [‘to‘,‘at‘,‘or‘,‘on‘,‘to‘,‘in‘,‘to‘].count(‘to‘)
# 3

a = [1,2,3]
b = [4,5,6]
print a+b
# # [1, 2, 3, 4, 5, 6]
a.extend(b)
print a
# [1, 2, 3, 4, 5, 6]

knight = [‘we‘,‘are‘,‘the‘,‘knights‘,‘who‘,‘say‘,‘ni‘]
print knight.index(‘who‘)
# 4

numbers = [1,2,3,5,6,7]
numbers.insert(3,‘four‘)
print numbers
# [1, 2, 3, ‘four‘, 5, 6, 7]

x = [1,2,3,4,5]
print x.pop()
# 5

y = [‘to‘,‘be‘,‘or‘,‘on‘]
y.remove(‘to‘)
print y
# [‘be‘, ‘or‘, ‘on‘]

z = [1,3,2,5,4]
z.reverse()
print z
# [4, 5, 2, 3, 1]

m = [4,6,2,5,7,1,3,0,9]
print sorted(m)
print m
# [0, 1, 2, 3, 4, 5, 6, 7, 9]
# [4, 6, 2, 5, 7, 1, 3, 0, 9]
m.sort()
print m
# [0, 1, 2, 3, 4, 5, 6, 7, 9]

# len作为键函数(按元素长度排序)
n = [‘aardvark‘,‘abalone‘,‘acde‘,‘add‘,‘aerate‘]
n.sort(key=len)
print n
# [‘add‘, ‘acde‘, ‘aerate‘, ‘abalone‘, ‘aardvark‘]
列表方法

12、

 

Python 列表和元组

标签:nbsp   连接   cto   raw   apr   log   不包含   区别   view   

原文地址:http://www.cnblogs.com/chenyanliang/p/6874353.html

踩
(0)
赞
(0)
   
举报
评论 一句话评论(0)
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!