设为首页 收藏本站
查看: 602|回复: 0

[经验分享] 通过比较学python(3)

[复制链接]

尚未签到

发表于 2017-4-27 06:23:06 | 显示全部楼层 |阅读模式
  字典类和字符串
  Dictionary
创建一个Dictionary
ab={"key1":"a","key2":"b","key3":"c"},这个语句创建一个dictionary并为他添加三个字典项,注意这里的key只能是一个不变类,也就是说是一个创建了就不能改变内容的值,比如你使用一个list对象作为键,就会报错
  添加或者修改一个字典项
ab["key4"]="d"
  字典对象拷贝
ab.copy()
注意这个函数进行是进行深拷贝还是潜拷贝呢?也就是传递应用还是传递值呢?
我们可以作个试验
>>> dict={1:'a',2:'b'}
>>> dict2=dict.copy()
>>> dict2
{1: 'a', 2: 'b'}
>>> dict
{1: 'a', 2: 'b'}
>>> dict[2]='c'
>>> dict
{1: 'a', 2: 'c'}
>>> dict2
{1: 'a', 2: 'b'}
可以看出进行的深拷贝,这和.net的拷贝是不同的,.net的拷贝默认是传递值
  Sequence接口
  Sequence是上面这些集合(list,tuple,dictionary)类的接口,定义了索引器和slice的功能.对于索引器.net程序员很熟悉比如在list和tuple中我们可以通过list[index]的方法来访问列表中的值,这个非常类似于.net中的索引器,slice是指返回一个列表的一部分
比如
>>> a=[1,2,3,4,5]
>>> a[1:3]
[2, 3]
通过a[1:3]我们返回了a列表中从第二个元素到第四个元素的子列表,那么如果我们要返回一个列表的所有数据怎么办呢?通过a[:]我们可以返回a的所有数据,注意,这其实也是一个深拷贝,而非引用拷贝
dict1=dict2[:]


DSC0000.gif python本身没有提供接口这个东东,但是从.Net和Java程序员看来,也许把Sequence表示成接口要容易理解一些,而且从代码实现来说,python的.net版本中列表对象就是从一个叫做ISequence的接口继承的

publicclassTuple:ISequence,ICollection,IEnumerable,IEnumerable<object>,IValueEquality,IList<object>,ICodeFormattable,IParameterSequence

ISequence的定义了索引和slice的方法


  有关python接口的资源可以参看
  http://blog.csdn.net/pjeby/archive/2007/03/18/1532666.aspx
  字符串类
初始化字符串的方法

str="my name is zy"
也可以用单引号
str='my name is zy'
也可以用三引号
str='''发送到发送到发送到非'''
  其他方法大家可以通过help(string)来看到,我就不重复介绍了
这里介绍几个特殊的用法
string.startswith(str):字符串是否以某个字符串开头,是则返回真
string.find(str):在字符串中查找某个字符串,找到返回真
if 'str' in name:这是上面查找语句的另外一种写法

字符串连接,类似.net中string类的join方法,python字符串也可以把一个数组中的字符串连接起来形成一个长字符串,但是注意这里的分隔符,.net中我们用string的静态方法,string.join(string separator,string[] list),前一个参数设置连接后的分隔符,后一个设置待连接的数组,但是由于python不存在静态方法,所以他稍微有些不同,大家看看下面语句:
delimiter = '_*_'
mylist = ['Brazil', 'Russia', 'India', 'China']
print delimiter.join(mylist)
  连接符变成了句子的主语,大家注意到了吗?

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-369643-1-1.html 上篇帖子: Dave Python 练习十四 -- 模块 下篇帖子: 一道python的线程题?
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表