• python 之 join的用法


    今天在学习的时候,发现一段代码

    执行压缩文件的时候

    source_name = "sys_bak.tar.gz"

    source_dir = ["/etc","/boot","/var/www/html"]

    tar_cmd = "tar zcvf %s %s " %(source_name, ' '.join(source_dir))

    始终没有理解 ' '.join(soure_dir)在这里的用法 

    经过一番研究,终于搞明白了。之前一直和 split函数搞混了,一直模糊的认为是join可转换为list,其实不然是split函数。

    >:这就是看书不认真导致

    a.split("") 是可以将str -----> list

    如:

    >>> a = "thx for you"
    >>> type (a)
    <type 'str'>

    >>> a.split(" ")
    ['thx', 'for', 'you']
    >>> type(a)
    <type 'str'>
    >>> c = a.split(" ")
    >>> type(c)
    <type 'list'>

    而 join可以说是 split的逆运算

    如:

    >>> word = ["/abc","/def","/ghi"]

    >>> word_str = ' '.join(word)
    >>> print word_str
    /abc /def /ghi

    >>> type(word_str)
    <type 'str'>

    再来一个:

    >>> data = [1,2,3,4,5]
    >>> data_str = ' '.join(data)
    Traceback (most recent call last):
    File "<stdin>", line 1, in <module>
    TypeError: sequence item 0: expected string, int found

    为什么到这里就不行了呢

    因为join转换之后,就成了 1,2,3,4,5  而本身1,2,3,4,5是int类型的

    >>> data_other = ["1","2","3","4"]
    >>> data_ostr = ' '.join(data_other)

    >>> type(data_ostr)
    <type 'str'>
    >>> print data_ostr
    1 2 3 4

    这样是不是就ok了呢

  • 相关阅读:
    剑指Offer_编程题_从尾到头打印链表
    剑指Offer_编程题_替换空格
    剑指Offer_编程题_二维数组中的查找
    我用java爬虫爬了一个图片网站
    docker安装mysql5.7
    设计模式和设计原则
    nginx 限流配置
    JAVA性能监控与调优参考文档链接
    单例模式
    Java开发中对Redis的基本操作
  • 原文地址:https://www.cnblogs.com/glxsc/p/5130963.html
Copyright © 2020-2023  润新知