欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

python小技巧

程序员文章站 2022-04-14 21:55:32
平时开发中,一些使用的技巧,记录一下,持续更新………… 示例代码1: 输出结果: 你对此,可能有些疑问,不对呀,看上去第3个输出,应该输出[3]呢,为什么是[1,3]呢???? 这个问题问得很好,这涉及到python对象作为参数时,每次调用并不会创建一个新的对象。就这么简单。 那么你可能又问啦,那为 ......

平时开发中,一些使用的技巧,记录一下,持续更新…………

示例代码1:

def ddd(a,b=[]):
    b.append(a)
    return b

print(ddd(1))
print(ddd(2,['a','b','c']))
print(ddd(3))

输出结果:

[1]  
['a','b','c',2]   
[1,3]  

 

你对此,可能有些疑问,不对呀,看上去第3个输出,应该输出[3]呢,为什么是[1,3]呢????

这个问题问得很好,这涉及到python对象作为参数时,每次调用并不会创建一个新的对象。就这么简单。

那么你可能又问啦,那为什么第2个,不输出[1,2]这是因为第二个调用函数的时候,传的参数是一个对象,将原来的对象改变了。

下面我们看一下,参数变化过程,内存id变化,很明显第一次和第三次b参数内存地址是同一个。

这说明函数调用,是不会创建新对象的。除非外在改变,也就是第二个调用

d:\python27\python.exe d:/untitled1/temp5.py
49089672
[1]
49089480
['a', 'b', 'c', 2]
49089672
[1, 3]

 

 

 

字符串转成列表元素,以及列表转成字符串:

a = 'helloworld'
print(list(a)) #字符串转成,列表
print(''.join(list(a))) #列表转成字符串

输出结果:

['h', 'e', 'l', 'l', 'o', 'w', 'o', 'r', 'l', 'd']
helloworld