学习索引和切片之后,我们开始更多地了解列表和内置方法。方法有
不返回
追加 插入 删除 排序 反转 清晰
返回整数
- 索引
- 数数
返回str
立即学习“Python免费学习笔记(深入)”;
- 流行
对于交付列表的较小更改,内置功能本身就足够了。但是当我们想要对列表进行更多操作时,就需要for循环、if循环。
例如,有一个列表 ['pencil', 'notebook', 'marker', 'highlighter', 'glue stick', 'eraser', 'laptop', 3],其中只有字符串需要转换为大写。这里我们不能直接使用列表或字符串方法。理想的逻辑是
- 我们必须逐一迭代列表
- 检查项目是字符串还是其他类型
- 相应地使用字符串方法 upper() 和append()
所以这里for循环,需要if,else条件
delivery_list= ['pencil', 'notebook', 'marker', 'highlighter', 'glue stick', 'eraser', 'laptop', 3]
upper_list = []
for item in delivery_list:
if type(item) == str:
upper_list.append(item.upper())
else:
upper_list.append(item)
print('upper case list is:', upper_list)
output:
upper case list is: ['pencil', 'notebook', 'marker', 'highlighter', 'glue stick', 'eraser', 'laptop', 3]
给出的任务是更多地练习这些方法和逻辑。找到可用的逻辑或方法很有趣。
解决的细节是
tasks_list.py
#######################################################################################
#1. create a list of five delivery items and print the third item in the list.
#eg: [“notebook”, “pencil”, “eraser”, “ruler”, “marker”]
#######################################################################################
delivery_list = ['notebook', 'pencil', 'eraser', 'ruler', 'marker']
print (f't1. third item in the list{delivery_list} is: {delivery_list[2]}')
#######################################################################################
# 2.a new delivery item “glue stick” needs to be added to the list.
# add it to the end of the list and print the updated list.
#######################################################################################
delivery_list.append('glue stick')
print('t2. updated delivery list is:', delivery_list)
#######################################################################################
# 3. insert “highlighter” between the second and third items and print the updated list.
#######################################################################################
delivery_list.insert(2, 'highlighter')
print('t3. updated list by inserting highlighter b/w 2nd &3rd:', delivery_list)
#######################################################################################
# 4. one delivery was canceled. remove “ruler” from the list and print the updated list.
#######################################################################################
delivery_list.remove('ruler')
print('t4. updated list after removing ruler is:', delivery_list)
#######################################################################################
# 5. the delivery man needs to deliver only the first three items.
# print a sublist containing only these items.
#######################################################################################
sublist =[]
for item in delivery_list[:3]:
#sublist =sublist.append(item) #this is incorrect as sublist.append() returns none.
sublist.append(item)
print('t5. sublist of first three elements using loop:', sublist)
print('t sublist of first three elements using slicing:', delivery_list[:3])
#######################################################################################
# 6.the delivery man has finished his deliveries.
# convert all item names to uppercase using a list comprehension and print the new list.
#######################################################################################
uppercase_list=[]
for item in delivery_list:
uppercase_list.append(item.upper())
print('t6. uppercase list of delivery items:', uppercase_list)
uppercase_list_lc = [item.upper() for item in delivery_list]
print('t6. uppercase list using list compre:', uppercase_list_lc)
#######################################################################################
# 7. check if “marker” is still in the list and print a message indicating whether it is found.
# 8. print the number of delivery items in the list.
#######################################################################################
is_found= delivery_list.count('marker')
if 'marker' in delivery_list:
print(f't7. marker is found {is_found} times')
else:
print(f't7. marker is not found {is_found}')
print(f't8. number of delivery item from {delivery_list} is: ', len(delivery_list))
#######################################################################################
# 9. sort the list of items in alphabetical order and print the sorted list
# 10. the delivery man decides to reverse the order of his deliveries.
# reverse the list and print it
#######################################################################################
delivery_list.sort()
print(f't9. sorted delivery list is {delivery_list}')
delivery_list.reverse()
print(f't10. reverse list of delivery list is {delivery_list}')
#######################################################################################
# 11. create a list where each item is a list containing a delivery item and its delivery time.
# print the first item and its time.
#######################################################################################
delivery_list_time = [['letter', '10:00'], ['parcel', '10:15'], ['magazine', '10:45'], ['newspaper', '11:00']]
print('t11. first delivery item and time', delivery_list_time[0])
delivery_list = ['pencil', 'notebook', 'marker', 'highlighter', 'glue stick', 'eraser', 'laptop']
delivery_time = ['11:00','11:20','11:40','12:00','12:30','13:00', '13:30']
#paring of two list using zip
paired_list=list(zip(delivery_list,delivery_time))
print('tpaired list using zip:', paired_list[0:2])
#combine corresponding item from multiple list using zip and for
item_time_list = [[item,time] for item, time in zip(delivery_list, delivery_time)]
print ('titem_time_list using list comprehension: ', item_time_list[0:1])
#######################################################################################
# 12. count how many times “ruler” appears in the list and print the count.
# 13. find the index of “pencil” in the list and print it.
# 14. extend the list items with another list of new delivery items and print the updated list.
# 15. clear the list of all delivery items and print the list.
# 16. create a list with the item “notebook” repeated three times and print the list.
# 17. using a nested list comprehension, create a list of lists where each sublist contains an item
# and its length, then print the new list.
# 18. filter the list to include only items that contain the letter “e” and print the filtered list.
# 19. remove duplicate items from the list and print the list of unique items.
#######################################################################################
is_found= delivery_list.count('ruler')
print('t12. the count of ruler in delivery list is:', is_found)
index_pencil = delivery_list.index('pencil')
print(f't13. index of pencil in {delivery_list} is {index_pencil}')
small_list = ['ink','']
delivery_list.extend(small_list)
print('t14. extend list by extend:', delivery_list)
item_time_list.clear()
print('t15. clearing the list using clear():', item_time_list)
notebook_list = ['notebook']*3
print('t16. notebook list is:', notebook_list)
#filter the list with e letter
delivery_list
new_delivery_list = []
for item in delivery_list:
if 'e' in item:
new_delivery_list.append(item)
print ('t18. filtered list with items containing e:', new_delivery_list)
new_list_compre = [item for item in delivery_list if 'e' in item]
print ('t18. filtered list by list comprehension:', new_list_compre)
#remove duplicate items
delivery_list.extend(['ink', 'marker'])
print('t ', delivery_list)
for item in delivery_list:
if delivery_list.count(item) > 1:
delivery_list.remove(item)
print('t19. duplicate remove list:',delivery_list)
print('t19. duplicate remove list:',list(set(delivery_list)))
#######################################################################################
# 17. using a nested list comprehension, create a list of lists where each sublist contains an item
# and its length, then print the new list.
#######################################################################################
#without list comprehension
nested_list = []
for item in delivery_list:
nested_list.append([item, len(item)])
print('t17. ', nested_list[-1:-6:-1])
#using list comprehension printing nested list
nested_list = [[item,len(item)] for item in delivery_list]
print('t17. nested list with length:', nested_list[:5])
答案:
PS C:ProjectsPythonSuresh> python Tasks_list.py
1. Third item in the list['Notebook', 'Pencil', 'Eraser', 'Ruler', 'Marker'] is: Eraser
2. Updated delivery list is: ['Notebook', 'Pencil', 'Eraser', 'Ruler', 'Marker', 'Glue Stick']
3. Updated list by inserting Highlighter b/w 2nd &3rd: ['Notebook', 'Pencil', 'Highlighter', 'Eraser', 'Ruler', 'Marker', 'Glue Stick']
4. Updated list after removing Ruler is: ['Notebook', 'Pencil', 'Highlighter', 'Eraser', 'Marker', 'Glue Stick']
5. Sublist of first three elements using loop: ['Notebook', 'Pencil', 'Highlighter']
Sublist of first three elements using slicing: ['Notebook', 'Pencil', 'Highlighter']
6. Uppercase list of delivery items: ['NOTEBOOK', 'PENCIL', 'HIGHLIGHTER', 'ERASER', 'MARKER', 'GLUE STICK']
6. Uppercase list using list compre: ['NOTEBOOK', 'PENCIL', 'HIGHLIGHTER', 'ERASER', 'MARKER', 'GLUE STICK']
7. Marker is found 1 times
8. Number of delivery item from ['Notebook', 'Pencil', 'Highlighter', 'Eraser', 'Marker', 'Glue Stick'] is: 6
9. Sorted delivery list is ['Eraser', 'Glue Stick', 'Highlighter', 'Marker', 'Notebook', 'Pencil']
10. Reverse list of delivery list is ['Pencil', 'Notebook', 'Marker', 'Highlighter', 'Glue Stick', 'Eraser']
11. First delivery item and time ['Letter', '10:00']
Paired list using zip: [('Pencil', '11:00'), ('Notebook', '11:20')]
Item_time_list using list comprehension: [['Pencil', '11:00']]
12. The count of Ruler in delivery list is: 0
13. Index of Pencil in ['Pencil', 'Notebook', 'Marker', 'Highlighter', 'Glue Stick', 'Eraser', 'Laptop'] is 0
14. Extend list by extend: ['Pencil', 'Notebook', 'Marker', 'Highlighter', 'Glue Stick', 'Eraser', 'Laptop', 'Ink', '']
15. Clearing the list using clear(): []
16. Notebook list is: ['Notebook', 'Notebook', 'Notebook']
18. Filtered list with items containing e: ['Pencil', 'Notebook', 'Marker', 'Highlighter', 'Glue Stick', 'Eraser']
18. Filtered list by list comprehension: ['Pencil', 'Notebook', 'Marker', 'Highlighter', 'Glue Stick', 'Eraser']
['Pencil', 'Notebook', 'Marker', 'Highlighter', 'Glue Stick', 'Eraser', 'Laptop', 'Ink', '', 'Ink', 'Marker']
19. Duplicate remove list: ['Pencil', 'Notebook', 'Highlighter', 'Glue Stick', 'Eraser', 'Laptop', '', 'Ink', 'Marker']
19. Duplicate remove list: ['', 'Ink', 'Pencil', 'Notebook', 'Marker', 'Eraser', 'Laptop', 'Highlighter', 'Glue Stick']
17. [['Marker', 6], ['Ink', 3], ['', 0], ['Laptop', 6], ['Eraser', 6]]
17. Nested list with length: [['Pencil', 6], ['Notebook', 8], ['Highlighter', 11], ['Glue Stick', 10], ['Eraser', 6]]