半径为2.11的圆球的体积python_python面试的100题(11)

21.Python-遍历列表时删除元素的正确做法

遍历在新在列表操作,删除时在原来的列表操作

a = [1,2,3,4,5,6,7,8]print(id(a))print(id(a[:]))for i ina[:]:if i>5:pass

else:

a.remove(i)print(a)print('-----------')print(id(a))#filter

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

b= filter(lambda x: x>5,a)print(list(b))

结果为:

2828084574856

2828084575880

[2, 3, 4, 5, 6, 7, 8]

[3, 4, 5, 6, 7, 8]

[4, 5, 6, 7, 8]

[5, 6, 7, 8]

[6, 7, 8]

[6, 7, 8]

[6, 7, 8]

[6, 7, 8]

-----------

2828084574856

[6, 7, 8]

列表解析

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

b= [i for i in a if i>5]print(b)

结果为:

[6, 7, 8]

倒序删除 因为列表总是‘向前移’,所以可以倒序遍历,即使后面的元素被修改了,还没有被遍历的元素和其坐标还是保持不变的

a=[1,2,3,4,5,6,7,8]print(id(a))for i in range(len(a)-1,-1,-1):if a[i]>5:pass

else:

a.remove(a[i])print(id(a))print('-----------')print(a)

结果为:

2828084513160

2828084513160

-----------

[6, 7, 8]

22.字符串的操作题目

全字母短句 PANGRAM 是包含所有英文字母的句子,比如:A QUICK BROWN FOX JUMPS OVER THE LAZY DOG. 定义并实现一个方法 get_missing_letter, 传入一个字符串采纳数,返回参数字符串变成一个 PANGRAM 中所缺失的字符。应该忽略传入字符串参数中的大小写,返回应该都是小写字符并按字母顺序排序(请忽略所有非 ACSII 字符)

下面示例是用来解释,双引号不需要考虑:

(0)输入: "A quick brown for jumps over the lazy dog"

返回: ""

(1)输入: "A slow yellow fox crawls under the proactive dog"

返回: "bjkmqz"

(2)输入: "Lions, and tigers, and bears, oh my!"

返回: "cfjkpquvwxz"

(3)输入: ""

返回:"abcdefghijklmnopqrstuvwxyz"

defget_missing_letter(a):

s1= set("abcdefghijklmnopqrstuvwxyz")

s2=set(a)

ret= "".join(sorted(s1-s2))returnretprint(get_missing_letter("python"))

结果为:abcdefgijklmqrsuvwxz

23.可变类型和不可变类型

1,可变类型有list,dict.不可变类型有string,number,tuple.

2,当进行修改操作时,可变类型传递的是内存中的地址,也就是说,直接修改内存中的值,并没有开辟新的内存。

3,不可变类型被改变时,并没有改变原内存地址中的值,而是开辟一块新的内存,将原地址中的值复制过去,对这块新开辟的内存中的值进行操作。

24.is和==有什么区别?

is:比较的是两个对象的id值是否相等,也就是比较俩对象是否为同一个实例对象。是否指向同一个内存地址

== : 比较的两个对象的内容/值是否相等,默认会调用对象的eq()方法

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值