【问题标题】:Python - replace random items in columnPython - 替换列中的随机项目
【发布时间】:2012-08-15 15:35:17
【问题描述】:

我对 python 有点陌生,如果这是一个基本问题,我很抱歉。

我有一个类似这样的文件:

Zr  1   1   1
Zr  1   1   1
Zr  1   1   1
Zr  1   1   1

重复了好几行。我需要将第一列中的字符串随机替换为另一个指定的字符串(为清楚起见进行了编辑),同时保持第 2、3 和 4 列相同。

任何想法如何做到这一点?我知道我应该将第一列输入一个数组,索引每一列,然后随机换出,但我不知道如何继续。

谢谢。

凯瑟琳 :)

编辑: 已修复。

感谢大家的帮助,只需要 random.sample :)

【问题讨论】:

  • 我不确定问题是什么。你能不能只在空格处分割第一行,计算数组的长度,然后使用 randint(0,9) (或任何你想要的范围)创建一个等效长度的数组并将其写回到你的文件中?
  • 抱歉,我只是想澄清一下。哪一部分令人困惑?
  • 嗯,你所描述的:“我知道我应该将第一列输入一个数组,索引每一列,然后随机换出”听起来是正确的。那么您是在寻求有关如何具体实现此功能的帮助(即示例代码),还是您想知道如何将列插入文件中?我想我只是对问题到底出在哪里感到困惑,因为您描述的方法听起来可行。
  • 是的,我知道我应该如何实现它,因为我以前用 C 编程过,但我不知道如何用 python 编写它(所以我正在寻找参考/示例代码)。谢谢:)

标签: python arrays random


【解决方案1】:

使用它来生成随机字符串

import os
random_string = os.urandom(string_length)

要逐行遍历文件,请执行

with open('file') as fd:
    for line in fd:
        # do stuff

无需关闭文件句柄

使用split 很好,在空白处拆分并将结果放入数组中(索引从 0 开始)在 docs.python.org 上阅读更多信息

请在您完成此操作后使用一些代码更新您的问题... 祝你好运

【讨论】:

  • 好的,谢谢,我去试试。我不需要生成随机字符串,我需要用另一个指定的字符串替换第一列中的字符串,例如在 100 次出现中用 O 替换 Zr 两次(我在这里处理原子!)
【解决方案2】:

我强烈建议阅读 python 入门,解决问题的方法可以分两步完成

  1. 从文件中读取项目 - reference

  2. 使用 math.random() 更改随机字符串-reference

通过知道如何做这些点,您可以轻松实现您打算做的事情。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-12-09
    • 2019-01-09
    • 1970-01-01
    • 2012-11-11
    • 1970-01-01
    • 2021-05-28
    • 2022-01-11
    相关资源
    最近更新 更多