2016-10-28 7 views
1

I持っていたAbaqusに境界条件に関係するコマンドを送信するために使用されているPythonのファイルに次のパラメータ:Pythonでさまざまなタイプの要素を含むリストを作成するにはどうすればよいですか?

u1=0.0, 
u2=0.0, 
u3=0.0, 
ur1=UNSET, 
ur2=0.0, 
ur3=UNSET 
私は.txtファイルに一覧表示し、リストや印刷の内側にこれらの値を配置したい

。これが唯一のように長いリストがAbaqusので使用するコマンドで、int型またはSTRでもない「UNSET」を、含まれていないとして働いてい

List = [str(u1), str(u2), str(u3), str(ur1), str(ur2), str(ur3)] 

:私は、私は文字列にすべての内容を変換する必要があります考え出しました。どのような対処方法?どうもありがとう!

+4

さまざまな種類の要素を含むリストを簡単に作成できます。それらの 'str'呼び出しをすべて取り出してください。あなたの本当の問題は、ファイルからデータを保存して読み込むために、リストをテキストとして可逆的にエンコードしているようです。 – user2357112

+0

「pythonファイル」の残りの部分はどういったものですか?あなたはどこにエラーがありますか? 'UNSET'を定義せずに' ur1 = UNSET'を書くだけなら、代わりに 'ur1 =" UNSET "'でなければなりません。 – alexis

+0

答えたあと、abaqus環境( 'UNSET'が定義されている)の外で動作するように意図されたコードを書こうとしているのだろうかと思い始めます。それが事実なら、何をしようとしているのかを明確にする必要があります。 – agentp

答えて

0

UNSETは、Abaqus/caeで定義された記号定数です。

def tostring(v): 
    try: 
    return(v.name) 
    except: 
    return(str(v)) 

その後、例えば

bc= [0.,1,UNSET] 
    print "u1=%s u2=%s u3=%s\n"%tuple([tostring(b) for b in bc]) 

を行うU1 = 0:あなたはこのような何かを行う可能性がありますので、それは、文字列表現を返すメンバーnameを持っています。 U2 = 1つのU3 = UNSET

EDITそれよりも簡単。私は象徴定数が文字列変換によって正しく処理されることを実感した後、これを行うことができます。

​​3210
+0

ありがとうございます。それに基づいて、すべての境界条件を最初にリストに書いてから、リストの項目を 'u1、u2、...'に割り当て、 'topBCsとbottomBCsで' for xを使います:if(x == UNSET): x = 'UNSET'の後に。それはうまくいくようです。 – Leo

関連する問題