0

問題があります。実行するたびに最大 30 文字を含む文字列のみを取得したいのです。

import random
test=["test1 up to 30 characters",
      "test2 passing 30 characters easy",
      "test3 up to 30 characters",
      "test4 passing 30 characters easy"]
random.shuffle(test)
if len(test[0])  <= 30:
    print test[0]
elif len(test[0])  >= 30:
    print "Shit"
    print len(test[0])

編集:************************************************ ****************************

テストでは、次のような変数があります。

import random
test=["test1 up to "+variable+" characters",
      "test2 passing "+variable+" characters easy",
      "test3 up to "+variable+" characters",
      "test4 passing "+variable+" characters easy"]
random.shuffle(test)
if len(test[0])  <= 30:
    print test[0]
elif len(test[0])  >= 30:
    print "Shit"
    print len(test[0])

その変数は、5 からわからない、10 までの混合文字数になります。

プログラムに、合計で最大 30 文字を含むリストから文字列を選択させたいと考えています。あなたのソリューションは、最大 30 文字の文字列を含むものを出力するだけです。戻って、毎回すべての変数に対して合計 30 文字を与えるリスト内の文字列を見つけてください。理解していただければ幸いです。私は自分自身を理解するのに苦労しています。

編集 ************************************************* ******************************

わかりました、私はこれをしました:

import random
test=["test1 up to 30 characters",
      "test2 passing 30 characters easy",
      "test3 up to 30 characters",
      "test4 passing 30 characters easy"]
random.shuffle(test)
print [x for x in test[0:1] if len(x) < 30]

それは私が望むことをしますが、空の[]のように空白になります

4

2 に答える 2

2

リスト内包表記を使用します。

print [x for x in test if len(x) < 30]
于 2012-11-22T13:25:11.423 に答える
1

<=良い面と悪い面の両方を>=持つことはできません。つまり=、両方を持つことはできません。基本的に、2 番目の値ifは である必要がありますelse。これが 30 以下でない場合、何が残るのでしょうか。

于 2012-11-22T13:24:33.340 に答える