python基础之逻辑题(1)

python基础之逻辑题(1)

   1.用一行代码实现数值交换?

   2.求结果--fromkeys?

   3.1,2,3,4,5能组成多少个互不相同且无重复的三位数?

   4.有两个字符串列表a和b,每个字符串是逗号分隔?

   5.求a[::-3]的结果?

   6.将列表内的元素,根据位数合并成字典?

   7.用简洁的方法将二维变成一维数组?

   8.求a,b,c,d的值?

   9.输出alist的结果?

   10.求sum结果?

    

1.用一行代码实现数值交换?

a=1
b=2
转换
a,b=b,a
print(a,b)

2求结果

v=dict.fromkeys(["k1","k2"],[])
v["k1"].append(666)
print(v)
v["k1"]=777
print(v)

结果:

{"k1":[666],"k2":[666]}
{"k1":777,"k2":[666]}

3.1,2,3,4,5 能组成多少个互不相同且无重复的三位数

lst =[]
for i  in range(1,6):
    for j in range(1,6):
        for k in range(1,6):
            if i!=j and i!=k and k!=j:
               lst.append((i,j,k))
               print(i,j,k)
print(len(lst))



结果:
60个

4.有两个字符串列表a和b,每个字符串是逗号分隔的一些字符

a=['a,1','b,3,22','c,3,4']
b = ['a,2','b,1','d,2']
按每个字符串的第一个值,合并a和b和c
c = ['a,1,2','b,3,22,1','c,3,4','d,2']
------------------------------------

c = a.copy()

for j in range(len(b)):
    for i in range(len(c)):
        if b[j][0] == c[i][0]:
            c[i] += b[j][1:]
            break
    else:
        c.append(b[j])
print(c)

5.a=range(10),a[::-3]的结果是

写: 9,6,3,0       写的时候这样写

实际结果 range(9,-1,-3)

6.将列表内的元素,根据位数合并成字典

lst = [1,2,4,8,16,32,64,128,256,512,1024,32769,65536,4294967296]
----------------------------------------------------------------------
dic={}
for i in lst:
    dic.setdefault(len(str(i)),[]).append(i)
print(dic)

7.请尽量用简洁的方法将二维数组转换成一维数组

##### 例:转换前 lst = [[1,2,3],[4,5,6],[7,8,9]]

##### 转换后lst = [1,2,3,4,5,6,7,8,9]

new_lst=[]
for i in lst:
    new_lst.extend(i)   #extend()函数用于在列表末尾一次性追加另一个序列中的多个值
print(new_lst)

8.如下代码

a = [1,2,3,[4,5],6]
b = a
c = copy.copy(a)        #浅拷贝把对象复制一遍,但是该对象中引用的其他对象我不复制
d = copy.deepcopy(a)    #深拷贝把对象复制一遍,并且该对象中引用的其他对象我也复制
b.append(10)
c[3].append(11)
d[3].append(12)
请问a,b,c,d的值为

a = [1,2,3,[4,5,11],6,10]
b = [1,2,3,[4,5,11],6,10]
c = [1,2,3,[4,5,11],6]
d = [1,2,3,[4,5,11,12],6]

9.阅读以下代码,并写入程序的输出结果

alist = [2,4,5,6,7]
for var in alist:
    if var % 2 == 0:
        alist.remove(var)
alist的最终结果是?

第一次循环:删除了2留下[4,5,6,7]
第二次循环:跳过4,用5,因为索引是1,留下[4,5,6,7]
第三次循环:索引是2,用6,删除6,留下[4,5,7]
结束
----------------------------------------------------------------
[4,5,7]

10求结果

kvps = {'1':'1','2':'2'}
theCopy = kvps  #相当于是赋值操作
kvps['1'] = 5         #{"1":5,"2":"2"}
sum = kvps['1']+theCopy['1']   #5+5
print(sum)
#10

                                                                              

posted @ 2019-05-29 23:14  帅小伙⊙∪⊙  阅读(953)  评论(0编辑  收藏  举报