4.4 序列
序列是具有索引和切片能力的集合。元组、列表和字符串具有通过索引访问某个具体的值,或通过切片返回一段切片的能力,因此元组、列表和字符串都属于序列。序列索引功能演示:
tuple=("apple","banana","grape","orange") list=["apple","banana","grape","orange"] str="apple" print(tuple[0]) print(tuple[-1]) print(list[0]) print(list[-1]) print(str[0]) print(str[-1])
[root@Dannyserver danny]# python a.py
apple
orange
apple
orange
a
e
序列切片功能演示:
tuple=("apple","banana","grape","orange") list=["apple","banana","grape","orange"] str="apple" print(tuple[:3]) #表示从第一个元素到第三个元素0、1、2 print(tuple[3:]) #表示从第四个元素到最后一个元素 print(tuple[1:-1]) #从第二个元素到倒数第一个元素(不包括倒数第一个) print(tuple[:]) #表示元组中所有元素 print() print(list[:3]) print(list[3:]) print(list[1:-1]) print(list[:]) print() print(str[:3]) print(str[3:]) print(str[1:-1]) print(str[:])
[root@Dannyserver danny]# python a.py ('apple', 'banana', 'grape') ('orange',) ('banana', 'grape') ('apple', 'banana', 'grape', 'orange') ['apple', 'banana', 'grape'] ['orange'] ['banana', 'grape'] ['apple', 'banana', 'grape', 'orange'] app le ppl apple
元组和列表都具有序列的特性,但是它们的区别也很明显,如下图:
练习:
1.给定列表L,如[2,5,3,8,10,1],对其进行升序排序并输出
def maopao(var): for y in range(len(var)-1,-1,-1): for i in range(y): if(var[i]>var[i+1]): var[i],var[i+1]=var[i+1],var[i] print(var) def main(): L=[2,5,3,8,10,1] maopao(L) if __name__=="__main__": main()
[root@Dannyserver danny]# python a.py [1, 2, 3, 5, 8, 10]
2.给定字符串s,如'123456',将其逆序并输出。(提示:使用切片)
s='123456' print (s[::-1])
[root@Dannyserver danny]# python a.py 654321
3.给定字典d,如{"a":1,"b":2,"c":3},分别输出它的key与value。向其中插入字典{"d":4},并输出新的字典。
d={"a":1,"b":2,"c":3} print(d.keys()) print(d.values()) d1={"d":4} d.update(d1) print(d)
[root@Dannyserver danny]# python a.py dict_keys(['a', 'b', 'c']) dict_values([1, 2, 3]) {'a': 1, 'b': 2, 'c': 3, 'd': 4}
4.求出100以内的所有素数,素数之间使用逗号隔开。
for i in range(2,101): fg = 0 for j in range(2,i-1): if i%j == 0: fg = 1 break if fg == 0: print (i)
用逗号隔开暂时没实现