V2EX hellogitooxx 的所有回复 第 1 页 / 共 1 页
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX    hellogitooxx    全部回复第 1 页 / 共 1 页
回复总数  19
@chionetw5 感谢你,就是这个意思
mysql
2021-04-22 22:17:11 +08:00
回复了 hellogitooxx 创建的主题 Python Python 查找元素并记录问题,恳请给个思路。
@hello2060 我找到思路了,感谢你的回答。
2021-04-22 19:42:27 +08:00
回复了 hellogitooxx 创建的主题 Python Python 查找元素并记录问题,恳请给个思路。
@hello2060

是需要在 if_list 前提上.append 的,return len(if_list) == 0 ? if_list : ['不存在'] 这个,i 前面 f_list=["oo","不存在"]已经有两个元素了。
2021-04-22 19:25:21 +08:00
回复了 hellogitooxx 创建的主题 Python ython 查找元素并记录问题,恳请给个思路。
@Wincer if_list 里面是要允许重复值的,这是前提,我这个题目主要是,当 str_="aa"有和列表中元素前面两个字符相同的,刚把当前元素添加到 if_list 中,要是没有就添加”不存在“。
2021-04-22 19:22:51 +08:00
回复了 hellogitooxx 创建的主题 Python Python 查找元素并记录问题,恳请给个思路。
@hello2060
```

for a_list in list_data:
if str_[-2:] == a_list[:2]:
if_list.append(a_list[-1])
else:
if_list.update("不存在")
```
没有相同的,也要返回“不存在”,但是我这个程序不相同的,返回了“不存在”多个了,我只需要返回一个”不存在“
2021-04-22 19:16:19 +08:00
回复了 hellogitooxx 创建的主题 Python Python 查找元素并记录问题,恳请给个思路。
@Wincer
else:
if_list.update("不存在")这里写错了,应该是 if_list.append("不存在")进去的。想要得到的结果就是 for a_list in list_data: 当相同的时候,要返回“不存在”,只需要返回一次就行了,但是我上面这个程序不相同的,返回了“不存在”多个了了。
2021-04-03 12:45:36 +08:00
回复了 hellogitooxx 创建的主题 Python 小白遇到个字符串数据处理,请教一下
@eason1874 感谢。
2021-04-02 18:30:09 +08:00
回复了 Twosecurity 创建的主题 推广 [信息安全] 开放几个课程
感谢分享
2021-03-21 21:50:56 +08:00
回复了 hellogitooxx 创建的主题 Python 急急急,小白弱弱请教一个关于字符串的大问题
@Pagliacii 我想问下,我还需要在哪方面进修,我对编程很感兴趣。像你回答题中,类似 defaultdict,combinations,我都没有学习到,没想到是 python 就自带的,很是惭愧。
2021-03-21 21:42:40 +08:00
回复了 hellogitooxx 创建的主题 Python 急急急,小白弱弱请教一个关于字符串的大问题
@Pagliacii 感谢你。
2021-03-21 19:33:51 +08:00
回复了 hellogitooxx 创建的主题 Python 急急急,小白弱弱请教一个关于字符串的大问题
@Pagliacii

def detect_paired(rows):
paired_rows = list(combinations(rows.keys(), 2))
# 你把 paired 这个变量换成一个字典来存储比较结果就好了。
# 比如以行数组成的元组作为 key,而 value 则是相同的次数。
# 这样只要每次发现相同的两行,就把 value 加一,就可以得到你想要的结果了。
paired = {}
value =1
i = 2
longest_column = max(rows.values(), key=lambda row: len(row))
while paired_rows and i < len(longest_column):
for pair in paired_rows[:]:
# print(pair)
if rows[pair[0]][:i + 1] == rows[pair[1]][:i + 1]:
# 以行数组成元组:pair
#print(paired.keys())
# 你应该先判断这两行是否已经记录过了,即是否存在于
# paired 这个字典里。如果字典里已有记录,那么就更新这个记录。
# 如果没有,那么就新增一个记录到字典里去。
if pair in paired.keys():
#if pair==paired[pair]:
value += 1
paired[pair]=value # 更新

elif pair not in paired.keys():
paired.update({pair: value})

print(f"L{pair[0]}==L{pair[1]}:{rows[pair[0]][:i + 1]}")

else:
paired_rows.remove(pair)
i += 1

return paired


添加了判断行数组是否存在,
我另外换了一串字符串,如下:
AAAAAABBBBBBABAABAABBBBABAAAAABABBAABBABABAAABBABAABAABDEFABBF

为什么达不到我想要的效果的,请问问题还出在哪里呢

按理说( 1,4 ),( 2,3 )不会有这么多呢?

我遇到的问题是怎么更新对应的字典里的键的值。

恳请你指点一下
2021-03-21 12:00:11 +08:00
回复了 hellogitooxx 创建的主题 Python 急急急,小白弱弱请教一个关于字符串的大问题
@Pagliacii 太感谢你了。刚学编程不久,能够遇到你这样热心回答,向你学习。
2021-03-21 09:45:57 +08:00
回复了 hellogitooxx 创建的主题 Python 急急急,小白弱弱请教一个关于字符串的大问题
@Pagliacii 感谢你在百忙之中回复,
然后选择第一行前面的 3 个元素,去后面 5 行查找是否存在前面三个元素相同的,有相同的+1,如第一行和第二行有相同的,则+1 (绿色条),程序向下循环查找,AAB 已经后面行已经没有,然后,(第二行,前面的 3 个元素,去后面 4 行查找是否存在前面三个元素相同的,有则+1,第三行同样,以此类推,比较存在就+1,)
到第 4 行和第 6 行也有相同的,也+1,不过这个+1 不是在第一行和第二行的前提上+1,因为它们的内部元素不相等的,然后继续循环,又回到第一行,开始取前面 4 个元素(因为之前是 3 个元素,现在元素内部也自增+1,循环一次,蓝色箭头),相互比较(查找),第 4 行和第 6 行也有相同的相同元素出现+1 (黄色条),面取前面 5 个元素,又一次循环,发现没有相同元素,程序结束。

思维是,先将字符串转换成 6 行,向竖输出,然后,第一次,先取第一行前面 3 个元素,去查找后面行前面 3 个元素是否有相同的,存在则+1,循环一次过后,再取第二行前面 3 个元素,去后面 4 行查找是否存在前面三个元素相同的,有则+1,第三行同样,以此类推,像比较存在就+1 )

截图我也发你邮箱了,再次感谢你。
2021-03-20 23:59:49 +08:00
回复了 hellogitooxx 创建的主题 Python 急急急,小白弱弱请教一个关于字符串的大问题
@Pagliacii 是的,每行相同位置的字符要相同。
“从第 3 个元素开始” 是指前两个元素不用管。
2021-03-20 20:22:11 +08:00
回复了 hellogitooxx 创建的主题 Python 急急急,小白弱弱请教一个关于字符串的大问题
@drinkeroftea 你可以贴张图你的代码运行后的结果么,我再详细描述一下
2021-03-20 20:20:28 +08:00
回复了 hellogitooxx 创建的主题 Python 急急急,小白弱弱请教一个关于字符串的大问题
@Pagliacii 感谢你的回复,
1.就是相同的元素字符即可,比如第一行 AAB,第二行也是 AAB,第四行 A,B,B 和第 6 行 A,B,B,
2.是每行都和其他行比较一次,存在相同就+1,
3.取前面的元素作比较(从第 3 个元素开始),每循环一次就增加一个元素进行相互比较,直到不存在相同的两行为止。

暂时还发不了图片网址,见谅。


@drinkeroftea
感谢你的热心回复,你可以看看 5 楼我的回复。
2021-03-20 15:04:54 +08:00
回复了 hellogitooxx 创建的主题 Python 急急急,小白弱弱请教一个关于字符串的大问题
首先感谢 @Pagliacii 的回答,按他的代码,已经完成了编排,
前面是我表达不清,不好意思,如下
A,A,B,B,A,A,A,C,A,A,A,A
A,A,B,C,B,A,A,A,B,C,B,E
A,B,A,A,C,A,A,A,B,B,A
A,B,B,B,A,A,A,A,B,A,A
B,A,B,D,B,A,C,A,C,B,A
A,B,B,B,B,C,B,A,C,B,B
需求:
元素已经编排好了,然后选择第一行前面的 3 个元素,和后面 5 行前面三个元素对比,有相同的+1,如第一行和第二行有相同的,则+1,行与行之间相互不断比较,到第 4 行和第 6 行也有相同的,也+1,不过这个+1 不是在第一行和第二行的前提上+1,因为它们的内部元素不相等的,然后继续循环,又回到第一行,取前面 4 个元素,相互比较,第 4 行和第 6 行也有相同的相同元素出现+1,循环,后面取前面 5 个元素,又一次循环,发现没有相同元素,程序结束。

想得到的信息:
第一和第二行,有相同的,出现一次
第四和第六行,有相同的,出现二次

恳请赐教。
2021-03-20 15:03:14 +08:00
回复了 hellogitooxx 创建的主题 Python 急急急,小白弱弱请教一个关于字符串的大问题
关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2686 人在线   最高记录 6679       Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 30ms UTC 14:48 PVG 22:48 LAX 07:48 JFK 10:48
Do have faith in what you're doing.
ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86