o(* ̄︶ ̄*)o

  博客园  :: 首页  ::  :: 联系 :: 订阅 订阅  :: 管理

列表与元组

#
# 列表与元组
#

#2-1
edward = ["Jone", 12]         #一个列表 含有N个元素
print edward
print edward[1]               # 可以当做数组来访问其中元素;左边查找开始为0
print edward[-1]              # 右边查找

edward2 = ["Lily", 13]
database = [edward, edward2]  # 很多个列表组成大列表
print database

#2-2
#索引
_str = "hello"
print _str[0]
print "hello"[0]
#year = raw_input("this is year:")[0]
#print year

#ep:
# 根据给定的年月日以数字形式打印出日期
months = [
     'January',
	 'February',
     'Match',
	 'April',
     'May',
	 'June',
     'July',
	 'August',
     'September',
	 'October',
     'November',
	 'December',	 
]
#     以1~31数字作为结尾列表
ending = ['st', 'nd', 'rd'] + 17 *['th'] \
       + ['st', 'nd', 'rd'] + 7 *['th'] \
	   + ['st']

year  =2015                            #raw_input('Year:')
month =3                               #raw_input('moth:')
day   =5                               #raw_input('day:')

month_number = int(month)
day_number = int(day)

month_name = months[month_number - 1]            #[]之前必须有列表变量,不然就变成【元组】了
ordinal = str(day) + ending[day_number - 1]

print month_name + ' ' + ordinal + ' ,'  + str(year)

#2-3 分片
self_name = 'www.python.org//downleossss'
print self_name[3:9]                             #分片是左关右开,打印字段是【3~8】
print self_name[3: -4]                           
print self_name[:]                               #打印全部
print self_name[3:]                              #从3位置到整个字符串
print self_name[3:-1]                            #不会打印最后一个字符,需要用上面
print self_name[-3:0]                            # 冒号 左边 必须比 右边 位置来得大,不然找不到
print self_name[3: 0]
print self_name[-7: -1]
print "show :" + self_name[2: 100]               # 可以越界,不会报错
#ep
#分片示例
url = 'http://www.somthing.org'
domain = url[11: -4]
print 'Domain name ' + domain

#分片默认都是 1位1位的查找,可以指定长度查找 【开始点:结束点:长度】
number = [11, 14, 122, 13455, 3445, 9837]
print number[0: 6 : 3]                           #最后一个冒号,所填的数值 指长度
                                                 #(既 从第一个开始越过N个获取下一个元素
print number[: :-2]
print number[6: 0: -2]                           # 需要 确保 =======开始点 < 结束点	且 步长为负数 才行=======
print number[0: 6 : -2]                          # 一无所获
print number[3: : 2]
print number[ : 3: 2]

#2-4 列表相加; 组合成新的列表,不会修改旧的列表
print months + ending                             #必须相同类型的列表,比如 字符串列表 与 数字列表就不能相加
print "show list :" 
print months                                      #无任何更新

#2-5 列表乘法
print self_name * 5                               # 多个字符串相连在一起

table = ['a','b']                                 
print table * 3                                   # 相同 列表组成一个列表

table = [] * 10                                   # 乘10次 依旧无数据
print table

table = [None] * 10                               # None迫使 列表占据空间
print table

#ep
#序列 * 乘法示例 * 字符串

sentence = " he is I like to boy!!"
sentence_width = 80
text_width = len(sentence)                         # len 列表 长度函数
box_width = text_width + 6
left_margin = (sentence_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-6 成员资格

print 'boy' in sentence                              # in 运算符 用于检测 左侧内容 是否在 右侧内容里面
print 'gril' in sentence						 
print 'May' in months
print  122 in months

#ep
#示例
database = [
['Lily', 111],
['Lucy', 222],
['Jone', 333],
['Cacy', 444],
]

if ['Jone', 333] in database:\
print "it is true"


#2-7列表常用函数
table = [15, 265 , 789, 456, 9998, 665, 448, 111, 5525, 668]
print len(table)								     # 获取列表元素个数
print max(table)                                     # 获取最大值
print min(table)                                     # 获取最小值

print list('hello')                                  # 拆分为列表
print list(table)

#table.append('add Data')                             # 添加一个元素
#print table
#table.append(list('hh'))                              #添加一个列表
#print table 

print table.count(15)                                  # 显示重复元素的次数
table.extend([1,3, 45, 5, 6, 78, 7])                   #将一个列表中所有元素添加到当前列表中
print table
print table.index(1)                                    # 搜索这个元素在这个列表中 索引ID
#print table.index(100)                                  # 不存在列表中,则会报错

print table.insert(5, 100)                             # 指定位置插入一个数据
print table.insert(100, 5555)                         # 位置越界,则插入到最后
print table

reomve_num = table.pop()                                # 删除最后一个元素,并返回出来
print table
print reomve_num

table.remove(5525)                                    # 没有这个元素 会报错
print table

table.reverse()                                       #列表方向存放
print table

#table.sort()                                           # 默认排序,从小到大
#print table


copy_table = sorted(table)                             #排序后返回 一个列表副本 sorted
print copy_table


copy_table = table[:]
copy_table.sort(cmp)                                    # sort 可以传递函数进行判断
print "sort(cmp) : " + repr(cmp(1, 2))
print copy_table

copy_table = [ "lily", "lucy","jim", " yang tuo"]       # 字符串从短到长排序
copy_table.sort(key = len)
print copy_table

copy_table.sort(reverse = True)                         # 方向排序 False正向, True 反向
print copy_table

#2-9列表操作

#修改元素
table[2] = "Lucy"
print table

#删除元素
del table[1]
print table

#分片实现 列表元素 替换,插入,清空
table[1:] = list('LiLy')
print table

table[1:1] = [458, 447, 998]
print table

table[3:] = []
print table

# 2 -10
#元组
table_ = (1, 2, 3,)
print table_
print table_[1]

print (23,)                    #一个元素时必须有逗号
print 4 *(23,)

print tuple('123456')          #与list相同

#print table_[2] = 20         元组不允许赋值,改正值

  

posted on 2015-03-06 15:26  熊本熊の熊  阅读(107)  评论(0)    收藏  举报