Python高级——练习0408

1.一个数组 my_list=range(10),我想获取如下几个数组,该如何切片?

[1,2,3,4,5,6,7,8,9]			print(my_list[1:])
[1,2,3,4,5,6]				print(my_list[1:7])
[3,4,5,6]					print(my_list[3:7])
[9]						print(my_list[9:]
[1,3,5,7,9]				print(my_list[1:10:2])
[8,6,4,2]					print(my_list[8:1:-2])

2.将字符串 “k:1|k1:2|k2:3|k3:4”转换成字典{“k”:1,”k1”:2,”k2”:3,”k3”:4},请写出代码。(代码题)

str1 = "k:1|k1:2|k2:3|k3:4"
list1 = str1.split("|")

dict1 = dict()
for i in list1:
    list2 = i.split(":")
    dict1.setdefault(list2[0], int(list2[1]))  # 第一种添加方法
    # dict1.setdefault(list2[0], eval(list2[1]))  # 第一种添加方法
    # dict1[list2[0]] = int(list2[1])       # 第二种添加方法
print(dict1)

3.my_list = [“a”,“a”,“a”,1,2,3,4,5,“A”,“B”,“C”]提取出”12345” (代码题)

my_list = ["a","a","a",1,2,3,4,5,"A","B","C"]
# 第一种方法
str1 = ""
for i in my_list:
    if type(i) is int:
        str1 += str(i)
print(str1)

# 第二种方法
a,b,c,*aa,d,e,f = my_list
print(aa)
print("".join(str(i) for i in aa))

4.给定一串排好序的列表a=[1,2,3,4,5],设计一个函数,打乱这个列表(即每次输出列表元素的顺序要不一致)(代码题)

# 第一种方法
import random

def main():
    a = [1, 2, 3, 4, 5]
    for i in range(len(a)-1):
        j = random.randint(0, len(a)-1-i)
        a[i], a[i+j] = a[i+j], a[i]
    print(a)

if __name__ == '__main__':
    main()


# 第二种方法
import random

a=[1,2,3,4,5]
random.shuffle(a)
print(a)

5.给定一个列表a=[3,4,5,6,6,5,4,3,2,1,7,8,8,3],请设计一个函数,实现传入一个target=3,输出3这个元素在列表a中的索引,输出格式如下:[0,7,13]

a=[3,4,5,6,6,5,4,3,2,1,7,8,8,3]

# 第一种方法
def solution(target):
    indix_list = list()
    count = 0
    for i in a:
        if i == target:
            indix_list.append(count)
        count += 1
    print(indix_list)

if __name__ == '__main__':
    solution(target = 5)



# 第二种方法
def s(target):
    ll = list()
    for index,nums in enumerate(a):
        # print(index,nums)
        if nums == target:
            ll.append(index)
    print(ll)

if __name__ == '__main__':
    s(3)

猜你喜欢

转载自blog.csdn.net/gxz987/article/details/89095645