鱼C论坛

 找回密码
 立即注册
查看: 3993|回复: 6

[已解决]字符串切割的问题

[复制链接]
发表于 2017-12-28 17:11:29 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
在29课中将文字切割为三部分
使用了
for each in f:
    if each[:6] != '======':
        (role,line_sp) = each.split(':',1)
        if role =='小甲鱼':
            boy.append(line_sp)
        if role == '小客服':
            gril.append(line_sp)

在我的理解里面,for语句不应该是逐个字符验证条件吗?
为什么这里可以这样使用?  if each[:6] != '======':


另外 each.split()的使用我没有明白
each.split(':',1)
是以‘:’为分隔符,我知道。这个1是什么含义。不应该是2吗?返回2个字符串
最佳答案
2017-12-29 08:56:59
wfjx_85 发表于 2017-12-29 08:49
for line1 in f1:
        line2 = f2.readline()
这个按行比较是在特定情况下,还是其他设定?

以下两种写法都是按行
1 for each in f:
2 while True:
     each = f.readline()
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2017-12-28 17:19:53 | 显示全部楼层
因为each是一个字符串,字符串是支持分片操作的,比如
s = "good day"
s[:5] = "good"

这里的1表示分割一次,也就是得到两部分
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-12-28 17:55:42 | 显示全部楼层
BngThea 发表于 2017-12-28 17:19
因为each是一个字符串,字符串是支持分片操作的,比如
s = "good day"
s[:5] = "good"

如何实现的逐行对比呢?
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-12-28 18:00:10 | 显示全部楼层
BngThea 发表于 2017-12-28 17:19
因为each是一个字符串,字符串是支持分片操作的,比如
s = "good day"
s[:5] = "good"

def file_compare(file1, file2):
    f1 = open(file1)
    f2 = open(file2)
    count = 0 # 统计行数
    differ = [] # 统计不一样的数量

    for line1 in f1:
        line2 = f2.readline()
        count += 1
        if line1 != line2:
            differ.append(count)
我不能理解,这段代码中if line1 != line2
for line1 in f1:
不应该是逐个字符读取 F1吗?
应该不是逐行对吧?

小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-12-28 18:34:50 From FishC Mobile | 显示全部楼层
wfjx_85 发表于 2017-12-28 18:00
def file_compare(file1, file2):
    f1 = open(file1)
    f2 = open(file2)

是按行
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-12-29 08:49:20 | 显示全部楼层

for line1 in f1:
        line2 = f2.readline()
这个按行比较是在特定情况下,还是其他设定?
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-12-29 08:56:59 | 显示全部楼层    本楼为最佳答案   
wfjx_85 发表于 2017-12-29 08:49
for line1 in f1:
        line2 = f2.readline()
这个按行比较是在特定情况下,还是其他设定?

以下两种写法都是按行
1 for each in f:
2 while True:
     each = f.readline()
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-6-19 19:15

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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