0
点赞
收藏
分享

微信扫一扫

day-6 作业

泠之屋 2022-04-19 阅读 74
python

1. 创建一个列表,列表中有10个数字, 保证列表中元素的顺序,对列表进行排重,并对列表使用进行降序排序

```python
例如:[70, 88, 91, 70, 107, 234, 91, 177, 282, 197]
        --- 去重之后 [70, 88, 91, 107, 234, 177, 282, 197]
      ---- 降序排序 [282, 234, 197, 177, 107, 91, 88, 70]
```

```python
score = [70, 88, 91, 70, 107, 234, 91, 177, 282, 197]
newscores = []
for x in score:
    if x not in newscores:
        newscores.append(x)
print('去重之后:',newscores)
print('降序排列:',sorted(newscores,reverse=True))

去重之后: [70, 88, 91, 107, 234, 177, 282, 197]
降序排列: [282, 234, 197, 177, 107, 91, 88, 70]
```

2. 利用列表推导式, 完成以下需求

a. 生成一个存放1-100中各位数为3的数据列表
法一:num = [' '] * 100
num1 = 0
for i in range(1,101):
    if (i<10 and i %3 == 0 and i //3==1) or (i>10 and i%10//3 ==1 and i%10%3==0) :
            num[num1] = i
            num1 += 1
print(num[:num1])
法二:list1 =[x for x  in range(1,100) if x %10 == 3]
print(list1)
结果:
[3, 13, 23, 33, 43, 53, 63, 73, 83, 93]

b. 利用列表推到是将 列表中的整数提取出来

num = [True, 17, "hello", "bye", 98, 34, 21]
list1 =[x for x  in num if type(x) == int]
print(list1)
结果:
[17, 98, 34, 21]

c.利用列表推导式 存放指定列表中字符串的长度
num = ["good", "nice", "see you", "bye"]
list1= [len(x) for x in num ]
print(list1)
结果:
[4, 4, 7, 3]

d. 利用列表推导式删除列表中整数个位数小于5的元素

num = [24, 'abc', 99, True, 21, 38, 'hello']
list1 =[x for x  in num if (type(x) == int and x%10 >=  5) or type(x) == str or type(x) == bool]
print(list1)
结果:
['abc', 99, True, 38, 'hello']

e. 利用列表推导式获取元素是元组的列表中每个元组的最后一个元素

num = [(10, 20, 30), ('abc', 'hello'), (1, 2, 3.4), (True, False)]
list1= [num[x][len(num[x])-1] for x in range(len(num))]
print(list1)
结果:
[30, 'hello', 3.4, False]

f.利用列表推导式将数字列表中所有的奇数乘以2,所有的偶数除以2

list1 =[ x*2 if x%2 !=0 else x//2for x in num ]
print(list1)
结果:
[46, 2, 134, 44, 45, 42]

3. 已知一个列表获取列表中指定元素所有的下标

  num = [10, 20, 34, 10, 9, 78]
list1 =[x for x in range(len(num)) if num[x] == 10]
print('10的下标为:%s'%list1)
结果:
10的下标为:[0, 3]

   

4. *已知一个数字列表,写程序判断这个列表时候是连续递增列表。

a = input('输入一串数字:').split(',')
b = list(map(int,a))
print(b)
if b == sorted(b):
    print('True')
else:
    print('False')
法二:
a = input('输入一串数字:').split(',')
c = list(a)
b = list(map(int,a))
print(b)
print(c)
active = True
i = 0
while active :
    for j in range(i+1,len(b)):
        if b[i] > b[j]:
            active =False
            break
    if i == len(b)-2 and j==len(b)-1:
        break
    i += 1
print(active)
结果:
输入一串数字:23,45,56,44,89
[23, 45, 56, 44, 89]
False
输入一串数字:2,3,4,5,7
[2, 3, 4, 5, 7]
True
   

5. 已知两个列表,将两个列表按照下面的规律交叉合并
a = [10, 20, 30, 40, 50]
b = [100, 200, 300]
c = [' '] * 100
d = a + c
for  i in range(1,7,2):
    d.insert(i,b[(i+1)//2-1])
print(d[0:8])
结果:
[10, 100, 20, 200, 30, 300, 40, 50]

6. 已知两个有序列表,将两个列表合并,合并后的新列表中元素仍然是递增列表

   a = [10, 20, 30, 40, 50]
b = [25, 44, 60]
c = [' '] * 100
d = a + c
for  i in range(1,7,2):
    d.insert(i,b[(i+1)//2-1])
print(d[0:8])
e =d[0:8]
print(sorted(e))
结果:
[10, 25, 20, 44, 30, 60, 40, 50]
[10, 20, 25, 30, 40, 44, 50, 60]

   

举报

相关推荐

day-6 总结

python学习Day-6

#day-6方法

作业day6

day6-列表作业

p6-day04 作业

day6-列表作业2

p6-day03 作业

p6-day17 作业

0 条评论