## Tcl8.6.17/Tk8.6.17 Documentation > Tcl Commands > lreplace

### Tcl/Tk Applications | Tcl Commands | Tk Commands | [incr Tcl] Package Commands | SQLite3 Package Commands | TDBC Package Commands | tdbc::mysql Package Commands | tdbc::odbc Package Commands | tdbc::postgres Package Commands | tdbc::sqlite3 Package Commands | Thread Package Commands | Tcl C API | Tk C API | [incr Tcl] Package C API | TDBC Package C API

### NAME

lreplace — リスト内の要素を新しい要素に置換える　　Replace elements in a list with new elements

### 構文 SYNOPSIS

lreplace list first last ?element element ...?

### 説明 DESCRIPTION

lreplace 命令は､ list の零或はそれ以上の要素を element 引数で置換えて形成された新しいリストを返す｡ first と last は置換える範囲の最初と最後の要素を指定する位置の値である｡位置を指す値 first と last は位置の値として､命令 string index と同じ様に解釈され､単純算術指定とリスト末尾相対の指定に対応している｡0 は､リストの最初の要素を参照し､end は､リストの最後の要素を参照している｡ lreplace returns a new list formed by replacing zero or more elements of list with the element arguments. first and last are index values specifying the first and last elements of the range to replace. The index values first and last are interpreted the same as index values for the command string index, supporting simple index arithmetic and indices relative to the end of the list. 0 refers to the first element of the list, and end refers to the last element of the list.

もし first か last の孰れかが零より小さいと､それはリストの最初の要素より前を参照していると看做される｡これにより lreplace はリスト list の前方に要素を附加することができる｡ もし first か last の孰れかが末尾の要素の番号より大きいと､それは恰も末尾の要素より一つ大きい要素番号として扱われる｡これにより lreplace はリスト list に要素を追加することが可能になる｡　　　　　　 If either first or last is less than zero, it is considered to refer to before the first element of the list. This allows lreplace to prepend elements to list. If either first or last indicates a position greater than the index of the last element of the list, it is treated as if it is an index one greater than the last element. This allows lreplace to append elements to list.

もし､ last が first よりも小さいと､どの要素も削除されることなく､指定されたどの要素もリスト内の first により指定された要素の前に挿入される｡　　　　　　　 If last is less than first, then any specified elements will be inserted into the list before the element specified by first with no elements being deleted.

element 引数は､リストから削除される要素の位置に追加さるべき零又はそれ以上の新しい要素を指定する｡各 element 引数は､リストの別々の要素になる｡もし､element 引数が全く指定されないと､ first と last の間の要素が単に削除される｡[譯註:両端 first と last も処理対象]　　　　　　 The element arguments specify zero or more new elements to be added to the list in place of those that were deleted. Each element argument will become a separate element of the list. If no element arguments are specified, then the elements between first and last are simply deleted.

### 用例 EXAMPLES

リストの一つの要素を他のものに置換える:　　　　 Replacing an element of a list with another:

    % lreplace {a b c d e} 1 1 foo
    a foo c d e

リストの二つの要素を三つに置換える: 　　　　　 Replacing two elements of a list with three:

    % lreplace {a b c d e} 1 2 three more elements
    a three more elements d e

変数に入っているリストから最後の要素を削除する:　　　　　　 Deleting the last element from a list in a variable:

    % set var {a b c d e}
    a b c d e
    % set var [lreplace $var end end]
    a b c d

与えられた要素をリストから削除する手続函数: 　　　　　 A procedure to delete a given element from a list:

    proc lremove {listVariable value} {
        upvar 1 $listVariable var
        set idx [lsearch -exact $var $value]
        set var [lreplace $var $idx $idx]
    }

リストに要素を追加する; 註意すべきは､end+2 はここでは最初に恰も 6 であるとして扱われる､だが､それと､12345 の両方が最後の要素の番号より大きいので､それらは同じに振舞うことになる: Appending elements to the list; note that end+2 will initially be treated as if it is 6 here, but both that and 12345 are greater than the index of the final item so they behave identically:

    % set var {a b c d e}
    a b c d e
    % set var [lreplace $var 12345 end+2 f g h i]
    a b c d e f g h i

### SEE ALSO

list, lappend, lindex, linsert, llength, lsearch, lset, lrange, lsort, string

### KEYWORDS

element, list, replace
Copyright © 1993 The Regents of the University of California.
Copyright © 1994-1996 Sun Microsystems, Inc.
Copyright © 2001 Kevin B. Kenny <kennykb(at)acm.org>. All rights reserved.