首页  >  文章  >  后端开发  >  Python - 列表和任务

Python - 列表和任务

王林
王林原创
2024-08-01 20:19:411020浏览

Python - Lists and Tasks

学习索引和切片后,我们开始学习更多关于列表和内置方法的知识。方法有

无返回

  • 追加
  • 插入
  • 删除
  • 排序
  • 反向
  • 清晰

返回整数

  • 索引

返回 str

  • 流行

对于交付列表的较小更改,内置功能本身就足够了。但是当我们想要对列表进行更多操作时,就需要for循环、if循环。

例如,有一个列表 ['Pencil', 'Notebook', 'Marker', 'Highlighter', 'Glue Stick', 'Eraser', 'Laptop', 3],其中只有字符串需要转换为大写。这里我们不能直接使用列表或字符串方法。理想的逻辑是

  1. 我们必须逐一迭代列表
  2. 检查项目是字符串还是其他类型
  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:\Projects\PythonSuresh> 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]]

以上是Python - 列表和任务的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn