Python中数据类型的操作

1.现有字典 d= {‘a’:24,‘g’:52,‘i’:12,‘k’:33}请按value值进行排序?

d= {'a':24,'g':52,'i':12,'k':33}
sort_dict=sorted(d.items(),key=lambda x:x[1])
print(sort_dict)

这样的排序操作返回的是一个列表形式,有待调整。
[(‘i’, 12), (‘a’, 24), (‘k’, 33), (‘g’, 52)]

2.字典推导式

d = {key:value for (key,value) in iterable}

3.反转字符串 “aStr”?

aStr='123sdfFASF1212'
print(aStr[::-1])

4.请按alist中元素的age由大到小排序

def sort_by_age(list1):
    return sorted(alist,key=lambda x:x['age'],reverse=True)

if __name__ == '__main__':
    alist = [{'name': 'a', 'age': 20}, {'name': 'b', 'age': 30}, {'name': 'c', 'age': 25}]
    print(sort_by_age(alist))

5.写一个列表生成式,产生一个公差为11的等差数列

print([x*11 for x in range(10)])

[0, 11, 22, 33, 44, 55, 66, 77, 88, 99]

6.下面代码的输出结果将是什么?

list = ['a','b','c','d','e']
print(list[10:])

[]
代码将输出[],不会产生IndexError错误,尝试用超出成员的个数的index来获取某个列表的成员。例如,尝试获取list[10]和之后的成员,会导致IndexError。然而,尝试获取列表的切片,开始的index超过了成员个数不会产生IndexError,而是仅仅返回一个空列表。因为运行的时候没有错误产生,导致Bug很难被追踪到。

7.给定两个列表,怎么找出他们相同的元素和不同的元素?

list1 = [1,2,3,5,6,7,8,9]
list2 = [3,4,5,12,3,5,5,6,8,9,10]
set1 = set(list1)
set2 = set(list2)
print(set1 & set2)
print(set1 ^ set2)

{3, 5, 6, 8, 9}
{1, 2, 4, 7, 10, 12}
最后输出的是一个集合类型,如果还想要输出为列表,可以list(set1 & set2)

8.python代码如何实现删除list里面的重复元素尼?
方法1:先用set()结合去重,然后转换成列表

l1 = ['b','c','d','c','a','a']
l2 = list(set(l1))
print(l2)

[‘d’, ‘b’, ‘a’, ‘c’]

方法2:循环遍历,再创建一个新的列表,并向里面添加元素。

l1 = ['b','c','d','c','a','a']
l2 = []
for i in l1:
    if not i in l2:
        l2.append(i)
print(l2)

方法3:

l1 = ['b','c','d','c','a','a']
l2 = sorted(set(l1),key=l1.index)
print(l2)

9.求出列表所有奇数并构造新列表

a = [1,2,3,4,5,6,7,8,9,10]
res = [ i for i in a if i%2==1]
print(res)

[1, 3, 5, 7, 9]

10.用一行python代码写出1+2+3+10248

from functools import reduce
#1.使用sum内置求和函数
num = sum([1,2,3,10248])
print(num)
#2.reduce 函数
num1 = reduce(lambda x,y :x+y,[1,2,3,10248])
print(num1)

学习转载:https://github.com/kenwoodjw/python_interview_question#

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值