Python:第6章列表与元祖 课后习题

《Python语言程序设计》刘卫国主编,中国工信出版集团,电子工业出版社

习题6

一、选择题

1.下列Python数据中其元素可以改变的是(      )。A

A.列表          B.元组         C.字符串         D.数组

2.表达式“[2] in [1,2,3,4]”的值是(      )。D

A.Yes              B.No          C.True           D.False

3.max((1,2,3)*2)的值是(      )。A

A.3              B.4           C.5                D.6

4.下列选项中与s[0:-1]表示的含义相同的是(      )。C

A.s[-1]           B.s[:]        C.s[:len(s)-1]    D.s[0:len(s)]

5.对于列表L=[1,2,'Python',[1,2,3,4,5]],L[-3]的是(      )。B

A.1            B.2            C.'Python'      D.[1,2,3,4,5]

6.L.reverse()和L[-1:-1-len(L):-1]的主要区别是(      )。D

A.L.reverse()和L[-1:-1-len(L):-1]都将列表的所有元素反转排列,没有区别

B.L.reverse()和L[-1:-1-len(L):-1]都不会改变列表L原来内容

C.L.reverse()不会改变列表L的内容,而L[-1:-1-len(L):-1]会改变列表L原来内容

D.L.reverse()会改变列表L的内容,而L[-1:-1-len(L):-1]产生一个新列表,不会改变列表L原来内容

7.tuple(range(2,10,2))的返回结果是(      )。C

A.[2, 4, 6, 8]              B.[2, 4, 6, 8, 10]

C.(2, 4, 6, 8)              D.(2, 4, 6, 8, 10)

8.下列程序执行后,p的值是(      )。A

a=[[1,2,3],[4,5,6],[7,8,9]]

p=1

for i in range(len(a)):

    p*=a[i][i]

A.45              B.15             C.6             D.28

9.下列Python程序的运行结果是(      )。C

s=[1,2,3,4]

s.append([5,6])

print(len(s))

A.2           B.4            C.5            D.6

10.下列Python程序的运行结果是(      )。B

s1=[4,5,6]

s2=s1

s1[1]=0

print(s2)

A.[4, 5, 6]       B.[4, 0, 6]        C.[0, 5, 6]         D.[4, 5, 0]

二、填空题

1.序列元素的编号称为        ,它从        开始,访问序列元素时将它用        括起来。索引,0,中括号

2.对于列表x,x.append(a)等价于        (用insert方法)。x.insert(len(x),a)

3.设有列表L=[1,2,3,4,5,6,7,8,9],则L[2:4]的值是        ,L[::2]的值是        ,L[-1]的值是        ,L[-1:-1-len(L):-1]的值是        

[3, 4][1, 3, 5, 7, 9]9[9, 8, 7, 6, 5, 4, 3, 2, 1]

4.Python语句print(tuple(range(2)),list(range(2)))的运行结果是        

(0, 1) [0, 1]

5.Python表达式[i for i in range(5) if i%2!=0]的值为        ,[i**2 for i in range(3)]的值为        [1, 3],[0, 1, 4]

6.Python语句first,*middles,last=range(6)执行后,middles的值为       ,sum(middles)/len(middles)的值为        [1, 2, 3, 4],2.5

7.已知fruits=[ 'apple','banana','pear'], print(fruits[-1][-1])的结果是       ,print(fruits.index('apple'))的结果是        ,print('Apple' in fruits)的结果是        r,0,False

8.下列程序的运行结果是     7

s1=[1,2,3,4]

s2=[5,6,7]

print(len(s1+s2))

9.下列语句执行后,s值为       [4, 'x', 'y']

s=[1,2,3,4,5,6]

s[:1]=[]

s[:2]='a'

s[2:]='b'

s[2:3]=['x','y']

del s[:1]

10.下列语句执行后,s值为       [5, [1, 2], 'a']

s=['a','b']

s.append([1,2])

s.extend([5,6])

s.insert(10,8)

s.pop()

s.remove('b')

s[3:]=[]

s.reverse()

三、问答题

1.什么叫序列?它有哪些类型?各有什么特点?

2.设有列表a,要求从列表a中每三个元素取一个,并且将取到的元素组成新的列表b,请写出语句。b=a[0:len(a):3]

3.用列表解析式生成包含10个数字5的列表,请写出语句。如果要生成包含10个数字5的元组,请写出语句。[5 for i in range(10)]tuple(5 for i in range(10))

4.分析下列语句的执行结果,总结语句y=x和y=x[:]的区别。

>>> x=[1,2,3,4,5]

>>> y=x

>>> id(x),id(y)

(36312688, 36312688)

>>> x=[1,2,3,4,5]

>>> y=x[:]

>>> id(x),id(y)

(36313288, 36312728)

5.分析下列语句的执行结果,总结语句m+=[4,5]和m=m+[4,5]的区别。

>>> m=[1,2]

>>> n=m

>>> m+=[4,5]

>>> m,n

([1, 2, 4, 5], [1, 2, 4, 5])

>>> m=[1,2]

>>> n=m

>>> m=m+[4,5]

>>> m,n

([1, 2, 4, 5], [1, 2])

6.写出下列程序的运行结果。

n=tuple([[1]*5 for i in range(4)])

for i in range(len(n)):

    for j in range(i,len(n[0])):

        n[i][j]=i+j

    print(sum(n[i]))

10

15

17

16

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
THE END
分享
二维码
< <上一篇

)">
下一篇>>