python数据结构之序列及其操作

序列

      在Python中最基本的数据结构是序列(sequence)。序列中的每个元素被分配一个序号----即元素的位置,也称索引。索引从0开始,0,1,2,3,...。也可以从最后一个数开始,标记为-1,依次为-1,-2,-3....

列表与元组的区别:列表可以修改,元组不可修改。

通用序列操作

1.索引

索引示例:

#根据给定的年月日以数字形式打印出日期
months=[
    'January','February','March','April','May','June','July','August','Sepetember','October','November','December'
]
#以1~31的数字作为结尾的列表,给Day加后缀
ending=['st','nd','rd']+17*['th']+['st','nd','rd']+7*['th']+['st']
print(ending)
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+ending[day_number-1]

print(month_name+' '+ordinal+'. '+year)


输出:
#给日期后加后缀
['st', 'nd', 'rd', 'th', 'th', 'th', 'th', 'th', 'th', 'th', 'th', 'th', 'th', 'th', 'th', 'th', 'th', 'th', 'th', 'th', 'st', 'nd', 'rd', 'th', 'th', 'th', 'th', 'th', 'th', 'th', 'st']
Year: 2018
Month(1-12): 1
Day(1-31): 1
January 1st. 2018

2.切片

使用切片操作来访问一定范围内的元素。切片通过冒号隔开两个索引来实现:

a=[1,2,3,4,5,65,76,7,8,89,9,67,88]
print(a[7:10])#从表头开始
print(a[7:-4])
print(a[-6:-4])#从表尾开始
#切片中最左边的索引比右边的晚出现在序列中,结果就是一个空序列
print(a[-6:0])
print(a[:])

输出:
[7, 8, 89]
[7, 8]
[7, 8]
[]
[1, 2, 3, 4, 5, 65, 76, 7, 8, 89, 9, 67, 88]

步长:

步长是1,切片操作就按照这个 步长逐个遍历序列的元素,然后返回开始和结束点之间的元素

代码实现:

a=[1,2,3,4,5,65,76,7,8,89,9,67,88]
print(a[0:13:2])

输出:
[1, 3, 5, 76, 8, 9, 88]

None、空列表和初始化

None是一个Python的内建值,表示“这里什么都没有”

#以正确的宽度在居中的“盒子”内打印一个句子
#获取句子长度
sentence = input('Plese input a sentence:')
screen_width =100
#获取文本的长度
text_width =len(sentence)
#文本的宽度
box_width = text_width +10
#计算出左右两边需空余的格式数[左边缘,右边缘]
left_margin = (screen_width - box_width)//2
box_left_margin = (box_width-text_width)//2

#打印屏幕宽度
print('='*100)
print(' '*left_margin + '+' + '-' *(box_width-2) + '+')
print(' '*left_margin + '|' + ' ' *(box_width-2) + '|')
print(' '*left_margin + '|' + ' '*(box_left_margin-1) + sentence + ' '*(box_left_margin-1) + '|')
print(' '*left_margin + '|' + ' ' *(box_width-2) + '|')
print(' '*left_margin + '+' + '-' *(box_width-2) + '+')
#打印屏幕宽度
print('='*100)


输出:
Plese input a sentence:Hello world
====================================================================================================
                                       +-------------------+
                                       |                   |
                                       |    Hello world    |
                                       |                   |
                                       +-------------------+
====================================================================================================

 

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值