1.建立乙個列表,列表中有10個舒宗, 保證列表中元素的順序,對列表進行排重,並對列表使用進行降序排序
例如:隨機生成了[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]
nums =[70
,88,91
,70,107
,234,91
,177
,282
,197
]length =
len(nums)
for _ in
range
(length)
: num = nums.pop(
)if num not
in nums:
nums.insert(
0, num)
nums.sort(reverse=
true
)print
(nums)
2.利用列表推導式, 完成以下需求
a. 生成乙個存放1-100中各位數為3的資料列表
結果為 [3, 13, 23, 33, 43, 53, 63, 73, 83, 93]
list1 =
[x for x in
range(1
,101
)if x %
10==3]
print
(list1)
b. 利用列表推到是將 列表中的整數提取出來
例如:[
true,17
,"hello"
,"bye",98
,34,21
]---
[17,98
,34,21
]
list1 =
[true,17
,"hello"
,"bye",98
,34,21
]list2 =
[x for x in list1 if
type
(x)==
int]
print
(list2)
c.利用列表推導式 存放指定列表中字串的長度
例如 [
"good"
,"nice"
,"see you"
,"bye"]-
--[4
,4,7
,3]
list1 =
["good"
,"nice"
,"see you"
,"bye"
]list2 =
[len
(x)for x in list1]
print
(list2)
3.已知**如下,請回答出各個print的結果 並說明原因
nums =[17
,39,28
,51]nums2 = nums
nums2.pop(
)print
(len
(nums)
)# 這個結果是什麼 請描述原因
"""結果是3
nums2和nums指向的都是同一片位址,也就是同乙個列表
當對nums2進行操作時,num也會進行同樣的操作
"""numlist =[17
,22,39
,58,[
55,43]
]nums3 = numlist.copy(
)print
(numlist is nums3)
# 結果 原因是什麼
numlist[-1
][0]
=99print
(nums3)
# num3會不會發生變化
"""第乙個print結果是false,因為nums3是複製numlist後在記憶體中新開闢空間存下的列表,和numlist不是同乙個
num3會發生變化,numlist和nums3裡面的小列表都指向同乙個位址,是同乙個小列表
"""
4.定義乙個列表,在列表中儲存6個學生的資訊(學生資訊中包括: 姓名、年齡、成績(單科)、**、性別(男、女、不明) )
a.統計不及格學生的個數
b.列印不及格學生的名字和對應的成績
c.統計未成年學生的個數
d.列印手機尾號是8的學生的名字
e.列印最高分和對應的學生的名字
f.刪除性別不明的所有學生
g.將列表按學生成績從大到小排序(掙扎一下,不行就放棄)
students =[,
,,,,
]#a.
unpass_num =
0for stu in students:
if stu[
'score'
]<60:
unpass_num +=
1print
(f'不及格學生人數:'
)#b.
print
('不及格的人'
)for stu in students:
if stu[
'score'
]<60:
print
('name:'
, stu[
'name'],
' score:'
, stu[
'score'])
#c.underage_num =
0for stu in students:
if stu[
'age'
]<18:
underage_num +=
1print
(f'未成年學生人數:'
)#d.
# 方法一
print
('手機尾號為8的學生:'
,[stu[
'name'
]for stu in students if
int(stu[
'tel'])
%10==8
])#e.max_score =
max(stu[
'score'
]for stu in students)
print
('最高分的分數和對應的學生'
,[stu[
'name'
]for stu in students if stu[
'score'
]== max_score]
, max_score)
# 方法二:
result =
max(students, key=
lambda x: x[
'score'])
print
(result)
#f.temp = students[:]
# 拷貝乙份,對temp進行掃瞄,對students進行刪除操作
for stu in temp:
if stu[
'gender']==
'不明'
: students.remove(stu)
print
(students)
#g.# 方法一
for i in
range
(len
(students)):
for j in
range
(i +1,
len(students)):
if students[i]
['score'
]< students[j]
['score']:
students[i]
, students[j]
= students[j]
, students[i]
print
(students)
# 方法二
new_students =
sorted
(students, key=
lambda
, x: x[
'score'
], reverse=
true
)print
(new_stduents)
day7 列表和字典作業
1.建立乙個列表,列表中有10個元素,保證列表中元素的順序,對列表進行排重,並對列表使用進行降序排序 例如 隨機生成了 70,88,91,70,107,234,91,177,282,197 去重之後 70,88,91,107,234,177,282,197 降序排序 282,234,197,177,...
day7 列表和字典作業
1.建立乙個列表,列表中有10個資料,保證列表中元素的順序,對列表進行排重,並對列表使用進行降序排序 例如 隨機生成了 70,88,91,70,107,234,91,177,282,197 去重之後 70,88,91,107,234,177,282,197 降序排序 282,234,197,177,...
day7 列表和字典作業
1.建立乙個列表,列表中有10個數字,保證列表中元素的順序,對列表進行排重,並對列表使用進行降序排序 例如 隨機生成了 70,88,91,70,107,234,91,177,282,197 去重之後 70,88,91,107,234,177,282,197 降序排序 282,234,197,177,...