设为首页收藏本站

Crossin的编程教室

 找回密码
 立即加入
查看: 25268|回复: 5
打印 上一主题 下一主题

【Python 第29课】 连接list

[复制链接]

174

主题

45

好友

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

跳转到指定楼层
楼主
发表于 2014-4-24 18:34:41 |只看该作者 |倒序浏览
今天要说的方法是join。它和昨天说的split正好相反:split是把一个字符串分割成很多字符串组成的list,而join则是把一个list中的所有字符串连接成一个字符串。

join的格式有些奇怪,它不是list的方法,而是字符串的方法。首先你需要有一个字符串作为list中所有元素的连接符,然后再调用这个连接符的join方法,join的参数是被连接的list:

s = ';'
li = ['apple', 'pear', 'orange']
fruit = s.join(li)
print fruit

得到结果'apple;pear;orange'。
从结果可以看到,分号把list中的几个字符串都连接了起来。

你也可以直接在shell中输入:

';'.join(['apple', 'pear', 'orange'])

得到同样的结果。

用来连接的字符串可以是多个字符,也可以是一个空串:

''.join(['hello', 'world'])

得到'helloworld',字符串被无缝连接在一起。


#==== 点球小游戏 ====#

昨天的代码已经能实现一个完整的点球比赛过程,但有同学提出:这不符合真实比赛规则,说好的提前结束比赛呢?!

关于这个,我想了下,可以有好几种解决方法,但似乎都有些绕。所以放到明天单独来讲,把这个小游戏收尾。

#==== Crossin的编程教室 ====#
微信ID:crossincode
网站:http://crossincode.com
回复

使用道具 举报

0

主题

0

好友

215

积分

中级会员

Rank: 3Rank: 3

沙发
发表于 2015-4-22 16:50:00 |只看该作者
回复

使用道具 举报

0

主题

0

好友

48

积分

新手上路

Rank: 1

板凳
发表于 2015-5-14 09:42:07 |只看该作者
__author__ = 'Administrator'

score_you = 0
score_com = 0

for i in range(5):
    print '=== You Kick - Round %d ===' % (i+1)
    print 'Choose a side to shoot(left,middle,right):'
    youChoice = raw_input()
    print 'You kicked ' + youChoice
    direction = ['left', 'middle', 'right']
    comChoice = choice(direction)
    print 'Computer saved ' + comChoice
    if youChoice != comChoice:
        print 'Go~Go~Goal~~~\n'
        score_you += 1
    else:
        print 'Oops...\n'
    if abs(score_you-score_com) > (5-i):
        break

    print '=== You Save - Round %d ===' % (i+1)
    print 'Choose a side to save(left,middle,right):'
    youChoice = raw_input()
    print 'You saved ' + youChoice
    direction = ['left', 'middle', 'right']
    comChoice = choice(direction)
    print 'Computer kicked ' + comChoice
    if youChoice == comChoice:
        print 'Sa~Sa~Saved~~~'
    else:
        print 'Oops...'
        score_com += 1
    print 'you %d : computer %d\n' % (score_you, score_com)
    if abs(score_you-score_com) >= (5-i):
        break

while score_you == score_com:
    i += 1
    print '=== You Kick - Round %d ===' % (i+1)
    print 'Choose a side to shoot(left,middle,right):'
    youChoice = raw_input()
    print 'You kicked ' + youChoice
    direction = ['left', 'middle', 'right']
    comChoice = choice(direction)
    print 'Computer saved ' + comChoice
    if youChoice != comChoice:
        print 'Go~Go~Goal~~~\n'
        score_you += 1
    else:
        print 'Oops...\n'

    print '=== You Save - Round %d ===' % (i+1)
    print 'Choose a side to save(left,middle,right):'
    youChoice = raw_input()
    print 'You saved ' + youChoice
    direction = ['left', 'middle', 'right']
    comChoice = choice(direction)
    print 'Computer kicked ' + comChoice
    if youChoice == comChoice:
        print 'Sa~Sa~Saved~~~'
    else:
        print 'Oops...'
        score_com += 1
    print 'you %d : computer %d\n' % (score_you, score_com)

if score_you > score_com:
    print 'You Win'
else:
    print 'You Lose'
回复

使用道具 举报

0

主题

0

好友

54

积分

注册会员

Rank: 2

地板
发表于 2015-5-27 23:49:18 |只看该作者
  1. sybol=" "
  2. word=['i','am','your','brother','Crossin','is','my','teacher!']
  3. print sybol.join(word)
复制代码
回复

使用道具 举报

0

主题

1

好友

273

积分

中级会员

Rank: 3Rank: 3

5#
发表于 2016-1-2 14:22:02 |只看该作者
  1. s=' '
  2. list=['I','am','a','teacher']
  3. sentence=s.join(list)
  4. print sentence
复制代码

Python14.png (1.76 KB, 下载次数: 406)

Python14.png

回复

使用道具 举报

0

主题

2

好友

72

积分

注册会员

Rank: 2

6#
发表于 2018-4-7 21:17:41 |只看该作者
实践后心得:
join是字符串的方法,一旦序列中包含非字符串格式的元素,那么join时就会报错。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即加入

QQ|手机版|Archiver|Crossin的编程教室 ( 苏ICP备15063769号  

GMT+8, 2024-12-4 01:37 , Processed in 0.026714 second(s), 34 queries .

Powered by Discuz! X2.5

© 2001-2012 Comsenz Inc.

回顶部