Python测试题-列表、字典、字符串

本文介绍Python中列表的多种实用操作方法,包括切片获取特定子列表、字符串转换为字典及列表元素打乱等技巧,并提供了查找指定元素索引位置的有效方法。
  1. 一个数组 my_list=range(10),我想获取如下几个数组,该如何切片?
[1,2,3,4,5,6,7,8,9]---------->[1:]
[1,2,3,4,5,6]----------->[1:7]
[3,4,5,6]---------------->[3:7]
[9]------------------>[10:8:-1]
[1,3,5,7,9]---------->[1:10:2]
[8,6,4,2]------------>[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"
dict1 = dict()
for i in str1.split("|"):
    key = i.split(":")[0]
    value = eval(i.split(":")[1])
    dict1[key] = value
print(dict1)

方法二

str1 = "k:1|k1:2|k2:3|k3:4"
dict1 = {k: int(v) for t in str1.split("|") for k, v in (t.split(":"),)}
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"]
a, b, c, *dd, q, w, e = my_list
str1 = str()
for i in dd:
    str1 += str(i)
print(str1)

方法二

my_list = ["a", "a", "a", 1, 2, 3, 4, 5, "A", "B", "C"]
list1 = my_list[3:8:]
str1 = str()
for i in list1:
    str1.
print(str1)

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

方法一

import random

def upset(a):
    random.shuffle(a)
    print(a)

list1 = [1, 2, 3, 4, 5]
upset(list1)

方法二

import random

def daluan(a):
    for j in range(5):
        i = random.randint(0, 3)
        a[i], a[i + 1] = a[i + 1], a[i]
    print(a)


a = [1, 2, 3, 4, 5]
daluan(a)

5.给定一个列表a=[3,4,5,6,6,5,4,3,2,1,7,8,8,3],请设计一个函数,实现传入一个target=3,

输出3这个元素在列表a中的索引,输出格式如下[0,7,13]

 三种方法实现,推荐第三种

# 方法一
def solution(target):
    a = [3, 4, 5, 6, 6, 5, 4, 3, 2, 1, 7, 8, 8, 3]
    idx = 0
    list1 = list()
    while idx < len(a):
        if a[idx] == target:
            list1.append(idx)
        idx += 1
    print(list1)

solution(3)
# 方法二
def solution(target):
    a = [3, 4, 5, 6, 6, 5, 4, 3, 2, 1, 7, 8, 8, 3]
    list1 = []
    idx = 0
    for i in a:
        if i == target:
            list1.append(idx)
        idx += 1
    print(list1)

solution(3)
# 方法三
def solution(target):
    a = [3, 4, 5, 6, 6, 5, 4, 3, 2, 1, 7, 8, 8, 3]
    my_list = list()
    for index, nums in enumerate(a):
        if nums == target:
            my_list.append(index)
    print(my_list)


solution(3)

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

乐风的测开笔记

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值