python数据类型之列表(二)

列表基础详见:https://www.cnblogs.com/gaofeng-01/p/16788576.html

列表相关题目
 
1、列表去重
# ①利用集合没有重复元素的特性,通过set()方法
lst1 = ['a', 'dc', 'abc', 'ab', 'abc', 'a', 'ab', 'ac', 'c']
lst2 = sorted(set(lst1))  # 先转成集合,再生成新列表。

# ②利用字典的键遵循不重复原则,可利用字典的方法进行去重
lst3 = dict.fromkeys(lst1).keys()

# ③遍历列表再依次判断
lst4 = []
[lst4.append(i) for i in lst1 if i not in lst4]

# ④通过count()方法判断删除出现过2次+的元素
[lst1.remove(lst1[lst1.index(j)]) for j in lst1 if lst1.count(j) >= 2]

# ⑤和④相反,通过count()方法判断留下只出现过1次的元素,但是这种方法会把重复的元素全部删掉
lst5 = ['a', 'dc', 'abc', 'ab', 'abc', 'a', 'ab', 'ac', 'c']
lst6 = []
[lst6.append(k) for k in lst5 if lst5.count(k) == 1]

 

2、将列表转为不包含'[]'的字符串
# 将列表转为不包含'[]'的字符串
a = ['a', 1, 2, 3, 4, [5, 6]]
str1 = ''
for i in a:
    if isinstance(i, str):
        str1 = str1+i
    elif isinstance(i, list):
        for j in i:
            if isinstance(j, str):
                str1 = str1 + j
            else:
                str1 = str1 + str(j)
    else:
        str1 = str1 + str(i)
print(str1)

 

3、有一个多层嵌套列表A=[1,2,[3,4,['434',[...]]]],请写一段代码遍历A中的每个元素并打印出来
A = [1, 2, [3, 4, ['434', [...]]]]
B = []


def loop_items(lst):
    for i in lst:
        if isinstance(i, list):
            return loop_items(i)
        else: 
            B.append(i)
    return B

 

 
posted @ 2022-10-14 18:10  杰个就斯爱情o  阅读(32)  评论(0)    收藏  举报